::: content
[;{.source}]{.comments} {.source}[; NOSA HEADER START{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; The contents of this file are subject to the terms of the NASA Open {.source}]{.comments} {.source}[; Source Agreement (NOSA), Version 1.3 only (the "Agreement"). You may {.source}]{.comments} {.source}[; not use this file except in compliance with the Agreement.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; You can obtain a copy of the agreement at{.source}]{.comments} {.source}[; docs/NASA_Open_Source_Agreement_1.3.txt{.source}]{.comments} {.source}[; or {.source}]{.comments} {.source}[; http://sscweb.gsfc.nasa.gov/WebServices/NASA_Open_Source_Agreement_1.3.txt.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; See the Agreement for the specific language governing permissions{.source}]{.comments} {.source}[; and limitations under the Agreement.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; When distributing Covered Code, include this NOSA HEADER in each{.source}]{.comments} {.source}[; file and include the Agreement file at {.source}]{.comments} {.source}[; docs/NASA_Open_Source_Agreement_1.3.txt. If applicable, add the {.source}]{.comments} {.source}[; following below this NOSA HEADER, with the fields enclosed by {.source}]{.comments} {.source}[; brackets "[]" replaced with your own identifying information: {.source}]{.comments} {.source}[; Portions Copyright [yyyy] [name of copyright owner]{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; NOSA HEADER END{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; Copyright (c) 2013-2016 United States Government as represented by {.source}]{.comments} {.source}[; the National Aeronautics and Space Administration. No copyright is {.source}]{.comments} {.source}[; claimed in the United States under Title 17, U.S.Code. All Other {.source}]{.comments} {.source}[; Rights Reserved.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[;+{.source}]{.comments} {.source}[; This class is an IDL representation of the BFieldModel{.source}]{.comments} {.source}[; element from the{.source}]{.comments} {.source}[; <a href="http://sscweb.gsfc.nasa.gov/">Satellite Situation Center</a>{.source}]{.comments} {.source}[; (SSC) XML schema.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @copyright Copyright (c) 2013-2016 United States Government as {.source}]{.comments} {.source}[; represented by the National Aeronautics and Space Administration.{.source}]{.comments} {.source}[; No copyright is claimed in the United States under Title 17,{.source}]{.comments} {.source}[; U.S.Code. All Other Rights Reserved.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @author B. Harris{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[;+{.source}]{.comments} {.source}[; Creates an SpdfBFieldModel object.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @keyword internalBFieldModel {in} {type=string} {default="IGRF"}{.source}]{.comments} {.source}[; internal magnetic field model (valid values: "IGRF",{.source}]{.comments} {.source}[; "SimpleDipole").{.source}]{.comments} {.source}[; @keyword externalBFieldModel {in} {type=SpdfExternalBFieldModel}{.source}]{.comments} {.source}[; {default=SpdfTsyganenko89c}{.source}]{.comments} {.source}[; external magnetic field model.{.source}]{.comments} {.source}[; @keyword traceStopAltitude {in} {optional} {type=int} {default=100}{.source}]{.comments} {.source}[; stop altitude for downward tracing of field.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @returns reference to an SpdfBFieldModel object.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::init:source}function SpdfBFieldModel::init, $ internalBFieldModel = internalBFieldModel, $ externalBFieldModel = externalBFieldModel, $ traceStopAltitude = traceStopAltitude compile_opt idl2 if keyword_set(internalBFieldModel) then begin self.internalBFieldModel = internalBFieldModel endif else begin self.internalBFieldModel = 'IGRF' endelse if keyword_set(externalBFieldModel) then begin self.externalBFieldModel = externalBFieldModel endif else begin self.externalBFieldModel = obj_new('SpdfTsyganenko89c') endelse if keyword_set(traceStopAltitude) then begin self.traceStopAltitude = traceStopAltitude endif else begin self.traceStopAltitude = 100 endelse return, self end {.source}[;+{.source}]{.comments} {.source}[; Performs cleanup operations when this object is destroyed.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::cleanup:source}pro SpdfBFieldModel::cleanup compile_opt idl2 if obj_valid(self.externalBFieldModel) then begin obj_destroy, self.externalBFieldModel endif end {.source}[;+{.source}]{.comments} {.source}[; Gets the internal B field model value.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @returns internal B field model value.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::getInternalBFieldModel:source}function SpdfBFieldModel::getInternalBFieldModel compile_opt idl2 return, self.internalBFieldModel end {.source}[;+{.source}]{.comments} {.source}[; Gets the external B field model.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @returns a reference to the external B field model.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::getExternalBFieldModel:source}function SpdfBFieldModel::getExternalBFieldModel compile_opt idl2 return, self.externalBFieldModel end {.source}[;+{.source}]{.comments} {.source}[; Gets the trace stop altitude value.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @returns trace stop altitude value.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::getTraceStopAltitude:source}function SpdfBFieldModel::getTraceStopAltitude compile_opt idl2 return, self.traceStopAltitude end {.source}[;+{.source}]{.comments} {.source}[; Creates an BFieldModel element using the given XML DOM document {.source}]{.comments} {.source}[; with the values of this object.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @param doc {in} {type=IDLffXMLDOMDocument}{.source}]{.comments} {.source}[; document in which to create the DataRequest element.{.source}]{.comments} {.source}[; @returns a reference to a new IDLffXMLDOMElement representation of{.source}]{.comments} {.source}[; this object.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel::createDomElement:source}function SpdfBFieldModel::createDomElement, $ doc compile_opt idl2 bFieldModelElement = doc->createElement('BFieldModel') internalModelElement = doc->createElement('InternalBFieldModel') ovoid = bFieldModelElement->appendChild(internalModelElement) internalModelNode = doc->createTextNode(self.internalBFieldModel) ovoid = internalModelElement->appendChild(internalModelNode) if ptr_valid(self.externalBFieldModel) then begin externalModelElement = $ self.externalBFieldModel->createDomElement(doc) ovoid = bFeildModelElement->appendChild(externalModelElement) endif traceStopElement = doc->createElement('TraceStopAltitude') ovoid = bFieldModelElement->appendChild(traceStopElement) traceStopNode = doc->createTextNode(self.traceStopAltitude) ovoid = traceStopElement->appendChild(traceStopNode) return, bFieldModelElement end {.source}[;+{.source}]{.comments} {.source}[; Defines the SpdfBFieldModel class.{.source}]{.comments} {.source}[;{.source}]{.comments} {.source}[; @field internalBFieldModel internal B-Field model.{.source}]{.comments} {.source}[; @field externalBFieldModel external B-Field model.{.source}]{.comments} {.source}[; @field traceStopAltitude stop altitude for downward tracing of field {.source}]{.comments} {.source}[; lines.{.source}]{.comments} {.source}[;-{.source}]{.comments} {.source}[]{#SpdfBFieldModel__define:source}pro SpdfBFieldModel__define compile_opt idl2 struct = { SpdfBFieldModel, $ internalBFieldModel:'IGRF', $ externalBFieldModel:obj_new(), $ traceStopAltitude:100 $ } end {.source}
:::