Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.




::: {role=“main”}

Module sscws.bfieldmodels

::: {#section-intro .section} Module defining classes to represent the BFieldModel and its sub-classes from https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

Copyright © 2013-2021 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.

Expand source code

#!/usr/bin/env python3

#
# 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://sscweb.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) 2013-2021 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.
#

"""
Module defining classes to represent the BFieldModel and its
sub-classes from
<https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

Copyright &copy; 2013-2021 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.
"""

import xml.etree.ElementTree as ET
from abc import ABCMeta
from enum import Enum



class InternalBFieldModel(Enum):
    """
    Enumerations representing the InternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    IGRF = 'IGRF'
    SIMPLE_DIPOLE = 'SimpleDipole'


class ExternalBFieldModelName(Enum):
    """
    Enumerations representing the name of ExternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    TSYGANENKO96 = 'Tsyganenko96BFieldModel'
    TSYGANENKO89C = 'Tsyganenko89cBFieldModel'
    TSYGANENKO87 = 'Tsyganenko87BFieldModel'


class ExternalBFieldModel(metaclass=ABCMeta):
    """
    Enumerations representing the ExternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    name
        B-field model name.
    """
    def __init__(self,
                 name: ExternalBFieldModelName):
        self._name = name


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('ExternalBFieldModel', {
            'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
            'xsi:type': self._name.value
        })
        builder.end('ExternalBFieldModel')
        return builder.close()


    @property
    def name(self) -> str:
        """
        Gets the name value.

        Returns
        -------
        str
            name value.
        """
        return self._name


    @name.setter
    def name(self, value: str):
        """
        Sets the name value.

        Parameters
        ----------
        value
            name value.
        """
        self._name = value


class Tsyganenko96BFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko96BFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    solar_wind_pressure
        Solar wind pressure (nP).  If None, default is 2.1.
    dst_index
        Disturbance Storm Time (DST) index.  If None, default is -20.
    by_imf
        BY Interplanetary Magnetic Field (IMF).  If None, default
        is 0.0.
    bz_imf
        BZ Interplanetary Magnetic Field (IMF).  If None, default
        is 0.0.
    """
    def __init__(self,
                 solar_wind_pressure: float = None,
                 dst_index: int = None,
                 by_imf: float = None,
                 bz_imf: float = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO96)

        if solar_wind_pressure is None:
            self._solar_wind_pressure = 2.1
        else:
            self._solar_wind_pressure = solar_wind_pressure

        if dst_index is None:
            self._dst_index = -20
        else:
            self._dst_index = dst_index

        if by_imf is None:
            self._by_imf = 0.0
        else:
            self._by_imf = by_imf

        if bz_imf is None:
            self._bz_imf = 0.0
        else:
            self._bz_imf = bz_imf


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('SolarWindPressure', {})
        builder.data(str(self._solar_wind_pressure))
        builder.end('SolarWindPressure')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('DstIndex', {})
        builder.data(str(self._dst_index))
        builder.end('DstIndex')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('ByImf', {})
        builder.data(str(self._by_imf))
        builder.end('ByImf')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('BzImf', {})
        builder.data(str(self._bz_imf))
        builder.end('BzImf')
        xml_element.append(builder.close())

        return xml_element


class Tsyganenko87Kp(Enum):
    """
    Enumerations representing the Tsyganenko87Kp defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    KP_0_0 = 'KP0_0'
    KP_1_1_1 = 'KP1_1_1'
    KP_2_2_2 = 'KP2_2_2'
    KP_3_3_3 = 'KP3_3_3'
    KP_4_4_4 = 'KP4_4_4'
    KP_5 = 'KP5'


class Tsyganenko87BFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko87BFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    key_parameters
        Model key parameter values.  If None, default is
        Tsyganenko87Kp.KP_3_3_3.
    """
    def __init__(self,
                 key_parameters: Tsyganenko87Kp = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO87)

        if key_parameters is None:
            self._key_parameters = Tsyganenko87Kp.KP_3_3_3
        else:
            self._key_parameters = key_parameters


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('KeyParameterValues', {})
        builder.data(self._key_parameters.value)
        builder.end('KeyParameterValues')

        xml_element.append(builder.close())

        return xml_element


class Tsyganenko89cKp(Enum):
    """
    Enumerations representing the Tsyganenko89cKp defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    KP_0_0 = 'KP0_0'
    KP_1_1_1 = 'KP1_1_1'
    KP_2_2_2 = 'KP2_2_2'
    KP_3_3_3 = 'KP3_3_3'
    KP_4_4_4 = 'KP4_4_4'
    KP_5_5_5 = 'KP5_5_5'
    KP_6 = 'KP6'


class Tsyganenko89cBFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko89cBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    key_parameters
        Model key parameter values.  If None, default is
        Tsyganenko89cKp.KP_3_3_3.
    """
    def __init__(self,
                 key_parameters: Tsyganenko89cKp = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO89C)

        if key_parameters is None:
            self._key_parameters = Tsyganenko89cKp.KP_3_3_3
        else:
            self._key_parameters = key_parameters


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('KeyParameterValues', {})
        builder.data(self._key_parameters.value)
        builder.end('KeyParameterValues')

        xml_element.append(builder.close())

        return xml_element


class BFieldModel:
    """
    Class representing a BFieldModel from
    <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    internal
        Internal B field model.  If None, the default is
        InternalBFieldModel.IGRF.
    external
        External B field model.  If None, the default is
        Tsyganenko 89c with KP 3-,3,3+.
    trace_stop_altitude
        Stop altitude for downward tracing of field lines.  If None,
           the default is 100km.

    """
    def __init__(self,
                 internal: InternalBFieldModel = None,
                 external: ExternalBFieldModel = None,
                 trace_stop_altitude: int = None):

        if internal is None:
            self._internal = InternalBFieldModel.IGRF
        else:
            self._internal = internal

        if external is None:
            self._external = Tsyganenko89cBFieldModel()
        else:
            self._external = external

        if trace_stop_altitude is None:
            self._trace_stop_altitude = 100
        else:
            self._trace_stop_altitude = trace_stop_altitude


    @property
    def internal(self) -> InternalBFieldModel:
        """
        Gets the internal value.

        Returns
        -------
        InternalBFieldModel
            internal value.
        """
        return self._internal


    @internal.setter
    def internal(self, value: InternalBFieldModel):
        """
        Sets the internal value.

        Parameters
        ----------
        value
            internal value.
        """
        self._internal = value


    @property
    def external(self) -> ExternalBFieldModel:
        """
        Gets the external value.

        Returns
        -------
        ExternalBFieldModel
            external value.
        """
        return self._external


    @external.setter
    def external(self, value: ExternalBFieldModel):
        """
        Sets the external value.

        Parameters
        ----------
        value
            external value.
        """
        self._external = value


    @property
    def trace_stop_altitude(self) -> int:
        """
        Gets the trace_stop_altitude value.

        Returns
        -------
        int
            trace_stop_altitude value.
        """
        return self._trace_stop_altitude


    @trace_stop_altitude.setter
    def trace_stop_altitude(self, value: int):
        """
        Sets the trace_stop_altitude value.

        Parameters
        ----------
        value
            trace_stop_altitude value.
        """
        self._trace_stop_altitude = value


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('BFieldModel', {})
        builder.start('InternalBFieldModel', {})
        builder.data(self._internal.value)
        builder.end('InternalBFieldModel')

        builder.start('TraceStopAltitude', {})
        builder.data(str(self._trace_stop_altitude))
        builder.end('TraceStopAltitude')

        builder.end('BFieldModel')

        xml_element = builder.close()
        xml_element.append(self._external.xml_element())

        return xml_element

:::

::: section :::

::: section :::

::: section :::

::: section

Classes

{.flex .name .class}class {.flex .name .class}[BFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}internal: {.flex .name .class}InternalBFieldModel{.flex .name .class} = None, external: {.flex .name .class}ExternalBFieldModel{.flex .name .class} = None, trace_stop_altitude: int = None){.flex .name .class} {.flex .name .class}

: ::: desc Class representing a BFieldModel from https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

## Parameters

**`internal`**
:   Internal B field model. If None, the default is
    InternalBFieldModel.IGRF.

**`external`**
:   External B field model. If None, the default is Tsyganenko 89c
    with KP 3-,3,3+.

**`trace_stop_altitude`**
:   Stop altitude for downward tracing of field lines. If None, the
    default is 100km.
:::

Expand source code

``` python
class BFieldModel:
    """
    Class representing a BFieldModel from
    <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    internal
        Internal B field model.  If None, the default is
        InternalBFieldModel.IGRF.
    external
        External B field model.  If None, the default is
        Tsyganenko 89c with KP 3-,3,3+.
    trace_stop_altitude
        Stop altitude for downward tracing of field lines.  If None,
           the default is 100km.

    """
    def __init__(self,
                 internal: InternalBFieldModel = None,
                 external: ExternalBFieldModel = None,
                 trace_stop_altitude: int = None):

        if internal is None:
            self._internal = InternalBFieldModel.IGRF
        else:
            self._internal = internal

        if external is None:
            self._external = Tsyganenko89cBFieldModel()
        else:
            self._external = external

        if trace_stop_altitude is None:
            self._trace_stop_altitude = 100
        else:
            self._trace_stop_altitude = trace_stop_altitude


    @property
    def internal(self) -> InternalBFieldModel:
        """
        Gets the internal value.

        Returns
        -------
        InternalBFieldModel
            internal value.
        """
        return self._internal


    @internal.setter
    def internal(self, value: InternalBFieldModel):
        """
        Sets the internal value.

        Parameters
        ----------
        value
            internal value.
        """
        self._internal = value


    @property
    def external(self) -> ExternalBFieldModel:
        """
        Gets the external value.

        Returns
        -------
        ExternalBFieldModel
            external value.
        """
        return self._external


    @external.setter
    def external(self, value: ExternalBFieldModel):
        """
        Sets the external value.

        Parameters
        ----------
        value
            external value.
        """
        self._external = value


    @property
    def trace_stop_altitude(self) -> int:
        """
        Gets the trace_stop_altitude value.

        Returns
        -------
        int
            trace_stop_altitude value.
        """
        return self._trace_stop_altitude


    @trace_stop_altitude.setter
    def trace_stop_altitude(self, value: int):
        """
        Sets the trace_stop_altitude value.

        Parameters
        ----------
        value
            trace_stop_altitude value.
        """
        self._trace_stop_altitude = value


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('BFieldModel', {})
        builder.start('InternalBFieldModel', {})
        builder.data(self._internal.value)
        builder.end('InternalBFieldModel')

        builder.start('TraceStopAltitude', {})
        builder.data(str(self._trace_stop_altitude))
        builder.end('TraceStopAltitude')

        builder.end('BFieldModel')

        xml_element = builder.close()
        xml_element.append(self._external.xml_element())

        return xml_element
```

### Instance variables

`var `{.name}[`external`{.name}]{.ident}` : `{.name}[`ExternalBFieldModel`{.name}](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")

:   ::: desc
    Gets the external value.

    ## Returns

    [`ExternalBFieldModel`](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")
    :   external value.
    :::

    Expand source code

    ``` python
    @property
    def external(self) -> ExternalBFieldModel:
        """
        Gets the external value.

        Returns
        -------
        ExternalBFieldModel
            external value.
        """
        return self._external
    ```

`var `{.name}[`internal`{.name}]{.ident}` : `{.name}[`InternalBFieldModel`{.name}](#sscws.bfieldmodels.InternalBFieldModel "sscws.bfieldmodels.InternalBFieldModel")

:   ::: desc
    Gets the internal value.

    ## Returns {#returns}

    [`InternalBFieldModel`](#sscws.bfieldmodels.InternalBFieldModel "sscws.bfieldmodels.InternalBFieldModel")
    :   internal value.
    :::

    Expand source code

    ``` python
    @property
    def internal(self) -> InternalBFieldModel:
        """
        Gets the internal value.

        Returns
        -------
        InternalBFieldModel
            internal value.
        """
        return self._internal
    ```

`var `{.name}[`trace_stop_altitude`{.name}]{.ident}` : int`{.name}

:   ::: desc
    Gets the trace_stop_altitude value.

    ## Returns {#returns}

    `int`
    :   trace_stop_altitude value.
    :::

    Expand source code

    ``` python
    @property
    def trace_stop_altitude(self) -> int:
        """
        Gets the trace_stop_altitude value.

        Returns
        -------
        int
            trace_stop_altitude value.
        """
        return self._trace_stop_altitude
    ```

### Methods

` `{.name .flex}`def `{.name .flex}[`xml_element`{.name .flex}]{.ident}`(`{.name .flex}`self) ‑> `{.name .flex}` `{.name .flex}

:   ::: desc
    Produces the XML Element representation of this object.

    ## Returns {#returns}

    `ET`
    :   XML Element represenation of this object.
    :::

    Expand source code

    ``` python
    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('BFieldModel', {})
        builder.start('InternalBFieldModel', {})
        builder.data(self._internal.value)
        builder.end('InternalBFieldModel')

        builder.start('TraceStopAltitude', {})
        builder.data(str(self._trace_stop_altitude))
        builder.end('TraceStopAltitude')

        builder.end('BFieldModel')

        xml_element = builder.close()
        xml_element.append(self._external.xml_element())

        return xml_element
    ```

{.flex .name .class}class {.flex .name .class}[ExternalBFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}name: {.flex .name .class}ExternalBFieldModelName{.flex .name .class}){.flex .name .class} {.flex .name .class}

: ::: desc Enumerations representing the ExternalBFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

## Parameters {#parameters}

**`name`**
:   B-field model name.
:::

Expand source code

``` python
class ExternalBFieldModel(metaclass=ABCMeta):
    """
    Enumerations representing the ExternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    name
        B-field model name.
    """
    def __init__(self,
                 name: ExternalBFieldModelName):
        self._name = name


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('ExternalBFieldModel', {
            'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
            'xsi:type': self._name.value
        })
        builder.end('ExternalBFieldModel')
        return builder.close()


    @property
    def name(self) -> str:
        """
        Gets the name value.

        Returns
        -------
        str
            name value.
        """
        return self._name


    @name.setter
    def name(self, value: str):
        """
        Sets the name value.

        Parameters
        ----------
        value
            name value.
        """
        self._name = value
```

### Subclasses

-   [Tsyganenko87BFieldModel](#sscws.bfieldmodels.Tsyganenko87BFieldModel "sscws.bfieldmodels.Tsyganenko87BFieldModel")
-   [Tsyganenko89cBFieldModel](#sscws.bfieldmodels.Tsyganenko89cBFieldModel "sscws.bfieldmodels.Tsyganenko89cBFieldModel")
-   [Tsyganenko96BFieldModel](#sscws.bfieldmodels.Tsyganenko96BFieldModel "sscws.bfieldmodels.Tsyganenko96BFieldModel")

### Instance variables

`var `{.name}[`name`{.name}]{.ident}` : str`{.name}

:   ::: desc
    Gets the name value.

    ## Returns {#returns}

    `str`
    :   name value.
    :::

    Expand source code

    ``` python
    @property
    def name(self) -> str:
        """
        Gets the name value.

        Returns
        -------
        str
            name value.
        """
        return self._name
    ```

### Methods

` `{.name .flex}`def `{.name .flex}[`xml_element`{.name .flex}]{.ident}`(`{.name .flex}`self) ‑> `{.name .flex}` `{.name .flex}

:   ::: desc
    Produces the XML Element representation of this object.

    ## Returns {#returns}

    `ET`
    :   XML Element represenation of this object.
    :::

    Expand source code

    ``` python
    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        builder = ET.TreeBuilder()
        builder.start('ExternalBFieldModel', {
            'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
            'xsi:type': self._name.value
        })
        builder.end('ExternalBFieldModel')
        return builder.close()
    ```

{.flex .name .class}class {.flex .name .class}[ExternalBFieldModelName{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}value, names=None, *, module=None, qualname=None, type=None, start=1){.flex .name .class} {.flex .name .class}

: ::: desc Enumerations representing the name of ExternalBFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd. :::

Expand source code

``` python
class ExternalBFieldModelName(Enum):
    """
    Enumerations representing the name of ExternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    TSYGANENKO96 = 'Tsyganenko96BFieldModel'
    TSYGANENKO89C = 'Tsyganenko89cBFieldModel'
    TSYGANENKO87 = 'Tsyganenko87BFieldModel'
```

### Ancestors

-   enum.Enum

### Class variables

`var `{.name}[`TSYGANENKO87`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`TSYGANENKO89C`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`TSYGANENKO96`{.name}]{.ident}

:   ::: desc
    :::

{.flex .name .class}class {.flex .name .class}[InternalBFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}value, names=None, *, module=None, qualname=None, type=None, start=1){.flex .name .class} {.flex .name .class}

: ::: desc Enumerations representing the InternalBFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd. :::

Expand source code

``` python
class InternalBFieldModel(Enum):
    """
    Enumerations representing the InternalBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    IGRF = 'IGRF'
    SIMPLE_DIPOLE = 'SimpleDipole'
```

### Ancestors

-   enum.Enum

### Class variables

`var `{.name}[`IGRF`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`SIMPLE_DIPOLE`{.name}]{.ident}

:   ::: desc
    :::

{.flex .name .class}class {.flex .name .class}[Tsyganenko87BFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}key_parameters: {.flex .name .class}Tsyganenko87Kp{.flex .name .class} = None){.flex .name .class} {.flex .name .class}

: ::: desc Class representing the Tsyganenko87BFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

## Parameters {#parameters}

**`key_parameters`**
:   Model key parameter values. If None, default is
    Tsyganenko87Kp.KP_3_3_3.
:::

Expand source code

``` python
class Tsyganenko87BFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko87BFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    key_parameters
        Model key parameter values.  If None, default is
        Tsyganenko87Kp.KP_3_3_3.
    """
    def __init__(self,
                 key_parameters: Tsyganenko87Kp = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO87)

        if key_parameters is None:
            self._key_parameters = Tsyganenko87Kp.KP_3_3_3
        else:
            self._key_parameters = key_parameters


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('KeyParameterValues', {})
        builder.data(self._key_parameters.value)
        builder.end('KeyParameterValues')

        xml_element.append(builder.close())

        return xml_element
```

### Ancestors

-   [ExternalBFieldModel](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")

### Inherited members

-   **[`ExternalBFieldModel`](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")**:
    -   [`name`](#sscws.bfieldmodels.ExternalBFieldModel.name "sscws.bfieldmodels.ExternalBFieldModel.name")
    -   [`xml_element`](#sscws.bfieldmodels.ExternalBFieldModel.xml_element "sscws.bfieldmodels.ExternalBFieldModel.xml_element")

{.flex .name .class}class {.flex .name .class}[Tsyganenko87Kp{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}value, names=None, *, module=None, qualname=None, type=None, start=1){.flex .name .class} {.flex .name .class}

: ::: desc Enumerations representing the Tsyganenko87Kp defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd. :::

Expand source code

``` python
class Tsyganenko87Kp(Enum):
    """
    Enumerations representing the Tsyganenko87Kp defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    KP_0_0 = 'KP0_0'
    KP_1_1_1 = 'KP1_1_1'
    KP_2_2_2 = 'KP2_2_2'
    KP_3_3_3 = 'KP3_3_3'
    KP_4_4_4 = 'KP4_4_4'
    KP_5 = 'KP5'
```

### Ancestors

-   enum.Enum

### Class variables

`var `{.name}[`KP_0_0`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_1_1_1`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_2_2_2`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_3_3_3`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_4_4_4`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_5`{.name}]{.ident}

:   ::: desc
    :::

{.flex .name .class}class {.flex .name .class}[Tsyganenko89cBFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}key_parameters: {.flex .name .class}Tsyganenko89cKp{.flex .name .class} = None){.flex .name .class} {.flex .name .class}

: ::: desc Class representing the Tsyganenko89cBFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

## Parameters {#parameters}

**`key_parameters`**
:   Model key parameter values. If None, default is
    Tsyganenko89cKp.KP_3_3_3.
:::

Expand source code

``` python
class Tsyganenko89cBFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko89cBFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    key_parameters
        Model key parameter values.  If None, default is
        Tsyganenko89cKp.KP_3_3_3.
    """
    def __init__(self,
                 key_parameters: Tsyganenko89cKp = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO89C)

        if key_parameters is None:
            self._key_parameters = Tsyganenko89cKp.KP_3_3_3
        else:
            self._key_parameters = key_parameters


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('KeyParameterValues', {})
        builder.data(self._key_parameters.value)
        builder.end('KeyParameterValues')

        xml_element.append(builder.close())

        return xml_element
```

### Ancestors

-   [ExternalBFieldModel](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")

### Inherited members

-   **[`ExternalBFieldModel`](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")**:
    -   [`name`](#sscws.bfieldmodels.ExternalBFieldModel.name "sscws.bfieldmodels.ExternalBFieldModel.name")
    -   [`xml_element`](#sscws.bfieldmodels.ExternalBFieldModel.xml_element "sscws.bfieldmodels.ExternalBFieldModel.xml_element")

{.flex .name .class}class {.flex .name .class}[Tsyganenko89cKp{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}value, names=None, *, module=None, qualname=None, type=None, start=1){.flex .name .class} {.flex .name .class}

: ::: desc Enumerations representing the Tsyganenko89cKp defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd. :::

Expand source code

``` python
class Tsyganenko89cKp(Enum):
    """
    Enumerations representing the Tsyganenko89cKp defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.
    """
    KP_0_0 = 'KP0_0'
    KP_1_1_1 = 'KP1_1_1'
    KP_2_2_2 = 'KP2_2_2'
    KP_3_3_3 = 'KP3_3_3'
    KP_4_4_4 = 'KP4_4_4'
    KP_5_5_5 = 'KP5_5_5'
    KP_6 = 'KP6'
```

### Ancestors

-   enum.Enum

### Class variables

`var `{.name}[`KP_0_0`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_1_1_1`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_2_2_2`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_3_3_3`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_4_4_4`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_5_5_5`{.name}]{.ident}

:   ::: desc
    :::

`var `{.name}[`KP_6`{.name}]{.ident}

:   ::: desc
    :::

{.flex .name .class}class {.flex .name .class}[Tsyganenko96BFieldModel{.flex .name .class}]{.ident} {.flex .name .class}({.flex .name .class}solar_wind_pressure: float = None, dst_index: int = None, by_imf: float = None, bz_imf: float = None){.flex .name .class} {.flex .name .class}

: ::: desc Class representing the Tsyganenko96BFieldModel defined in https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd.

## Parameters {#parameters}

**`solar_wind_pressure`**
:   Solar wind pressure (nP). If None, default is 2.1.

**`dst_index`**
:   Disturbance Storm Time (DST) index. If None, default is -20.

**`by_imf`**
:   BY Interplanetary Magnetic Field (IMF). If None, default is 0.0.

**`bz_imf`**
:   BZ Interplanetary Magnetic Field (IMF). If None, default is 0.0.
:::

Expand source code

``` python
class Tsyganenko96BFieldModel(ExternalBFieldModel):
    """
    Class representing the Tsyganenko96BFieldModel defined
    in <https://sscweb.gsfc.nasa.gov/WebServices/REST/SSC.xsd>.

    Parameters
    ----------
    solar_wind_pressure
        Solar wind pressure (nP).  If None, default is 2.1.
    dst_index
        Disturbance Storm Time (DST) index.  If None, default is -20.
    by_imf
        BY Interplanetary Magnetic Field (IMF).  If None, default
        is 0.0.
    bz_imf
        BZ Interplanetary Magnetic Field (IMF).  If None, default
        is 0.0.
    """
    def __init__(self,
                 solar_wind_pressure: float = None,
                 dst_index: int = None,
                 by_imf: float = None,
                 bz_imf: float = None):

        super().__init__(ExternalBFieldModelName.TSYGANENKO96)

        if solar_wind_pressure is None:
            self._solar_wind_pressure = 2.1
        else:
            self._solar_wind_pressure = solar_wind_pressure

        if dst_index is None:
            self._dst_index = -20
        else:
            self._dst_index = dst_index

        if by_imf is None:
            self._by_imf = 0.0
        else:
            self._by_imf = by_imf

        if bz_imf is None:
            self._bz_imf = 0.0
        else:
            self._bz_imf = bz_imf


    def xml_element(self) -> ET:
        """
        Produces the XML Element representation of this object.

        Returns
        -------
        ET
            XML Element represenation of this object.
        """

        xml_element = super().xml_element()

        builder = ET.TreeBuilder()
        builder.start('SolarWindPressure', {})
        builder.data(str(self._solar_wind_pressure))
        builder.end('SolarWindPressure')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('DstIndex', {})
        builder.data(str(self._dst_index))
        builder.end('DstIndex')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('ByImf', {})
        builder.data(str(self._by_imf))
        builder.end('ByImf')
        xml_element.append(builder.close())

        builder = ET.TreeBuilder()
        builder.start('BzImf', {})
        builder.data(str(self._bz_imf))
        builder.end('BzImf')
        xml_element.append(builder.close())

        return xml_element
```

### Ancestors

-   [ExternalBFieldModel](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")

### Inherited members

-   **[`ExternalBFieldModel`](#sscws.bfieldmodels.ExternalBFieldModel "sscws.bfieldmodels.ExternalBFieldModel")**:
    -   [`name`](#sscws.bfieldmodels.ExternalBFieldModel.name "sscws.bfieldmodels.ExternalBFieldModel.name")
    -   [`xml_element`](#sscws.bfieldmodels.ExternalBFieldModel.xml_element "sscws.bfieldmodels.ExternalBFieldModel.xml_element")

:::

Index

::: toc :::

:::

SSC Python API Feedback.

Generated by pdoc 0.9.2 at 2024-04-05T09:03:43 EDT.