735 lines
22 KiB
Python
Executable File
735 lines
22 KiB
Python
Executable File
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Copyright 2010 California Institute of Technology. ALL RIGHTS RESERVED.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
# United States Government Sponsorship acknowledged. This software is subject to
|
|
# U.S. export control laws and regulations and has been classified as 'EAR99 NLR'
|
|
# (No [Export] License Required except when exporting to an embargoed country,
|
|
# end user, or in support of a prohibited end use). By downloading this software,
|
|
# the user agrees to comply with all applicable U.S. export laws and regulations.
|
|
# The user has the responsibility to obtain export licenses, or other export
|
|
# authority as may be required before exporting this software to any 'EAR99'
|
|
# embargoed foreign country or citizen of those countries.
|
|
#
|
|
# Author: Giangi Sacco
|
|
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
from __future__ import print_function
|
|
from isceobj import Constants as CN
|
|
from iscesys.Component.Component import Component, Port
|
|
from iscesys.Compatibility import Compatibility
|
|
from stdproc.orbit import mocompbaseline
|
|
|
|
|
|
DIM = 3
|
|
|
|
ELLIPSOID_ECCENTRICITY_SQUARED = Component.Parameter(
|
|
'ellipsoidEccentricitySquared',
|
|
public_name='ELLIPSOID_ECCENTRICITY_SQUARED',
|
|
default=CN.EarthEccentricitySquared,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
ELLIPSOID_MAJOR_SEMIAXIS = Component.Parameter(
|
|
'ellipsoidMajorSemiAxis',
|
|
public_name='ELLIPSOID_MAJOR_SEMIAXIS',
|
|
default=CN.EarthMajorSemiAxis,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
HEIGHT = Component.Parameter(
|
|
'height',
|
|
public_name='HEIGHT',
|
|
default=None,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
POSITION1 = Component.Parameter(
|
|
'position1',
|
|
public_name='POSITION1',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
POSITION2 = Component.Parameter(
|
|
'position2',
|
|
public_name='POSITION2',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
MOCOMP_POSITION1 = Component.Parameter(
|
|
'mocompPosition1',
|
|
public_name='MOCOMP_POSITION1',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MOCOMP_POSITION2 = Component.Parameter(
|
|
'mocompPosition2',
|
|
public_name='MOCOMP_POSITION2',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MOCOMP_POSITION_INDEX1 = Component.Parameter(
|
|
'mocompPositionIndex1',
|
|
public_name='MOCOMP_POSITION_INDEX1',
|
|
default=[],
|
|
container=list,
|
|
type=int,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MOCOMP_POSITION_INDEX2 = Component.Parameter(
|
|
'mocompPositionIndex2',
|
|
public_name='MOCOMP_POSITION_INDEX2',
|
|
default=[],
|
|
container=list,
|
|
type=int,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
PEG_HEADING = Component.Parameter(
|
|
'pegHeading',
|
|
public_name='PEG_HEADING',
|
|
default=None,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
PEG_LATITUDE = Component.Parameter(
|
|
'pegLatitude',
|
|
public_name='PEG_LATITUDE',
|
|
default=None,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
PEG_LONGITUDE = Component.Parameter(
|
|
'pegLongitude',
|
|
public_name='PEG_LONGITUDE',
|
|
default=None,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
PLANET_LOCAL_RADIUS = Component.Parameter(
|
|
'planetLocalRadius',
|
|
public_name='PLANET_LOCAL_RADIUS',
|
|
default=None,
|
|
type=float,
|
|
mandatory=True,
|
|
intent='input',
|
|
doc=''
|
|
)
|
|
|
|
|
|
BASE1 = Component.Parameter(
|
|
'base1',
|
|
public_name='BASE1',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
BASE2 = Component.Parameter(
|
|
'base2',
|
|
public_name='BASE2',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MIDPOINT = Component.Parameter(
|
|
'midpoint',
|
|
public_name='MIDPOINT',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MIDPOINT1 = Component.Parameter(
|
|
'midpoint1',
|
|
public_name='MIDPOINT1',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MIDPOINT2 = Component.Parameter(
|
|
'midpoint2',
|
|
public_name='MIDPOINT2',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
MOCOMP_BASELINE = Component.Parameter(
|
|
'baselineArray',
|
|
public_name='MOCOMP_BASELINE',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
SC = Component.Parameter(
|
|
'sc',
|
|
public_name='SC',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
SCH = Component.Parameter(
|
|
'sch',
|
|
public_name='SCH',
|
|
default=[],
|
|
container=list,
|
|
type=float,
|
|
mandatory=False,
|
|
intent='output',
|
|
doc=''
|
|
)
|
|
|
|
|
|
class Mocompbaseline(Component):
|
|
|
|
|
|
parameter_list = (
|
|
HEIGHT,
|
|
ELLIPSOID_ECCENTRICITY_SQUARED,
|
|
PEG_LATITUDE,
|
|
PEG_LONGITUDE,
|
|
PLANET_LOCAL_RADIUS,
|
|
MOCOMP_POSITION_INDEX1,
|
|
ELLIPSOID_MAJOR_SEMIAXIS,
|
|
MOCOMP_POSITION_INDEX2,
|
|
POSITION1,
|
|
POSITION2,
|
|
MOCOMP_POSITION1,
|
|
MOCOMP_POSITION2,
|
|
PEG_HEADING,
|
|
SCH,
|
|
SC,
|
|
BASE2,
|
|
MIDPOINT1,
|
|
MIDPOINT2,
|
|
MIDPOINT,
|
|
BASE1,
|
|
MOCOMP_BASELINE
|
|
)
|
|
|
|
|
|
logging_name = 'isce.stdproc.orbit.mocompbaseline'
|
|
family = 'mocompbaseline'
|
|
|
|
def __init__(self,family='',name=''):
|
|
super(Mocompbaseline, self).__init__(family if family else self.__class__.family, name=name)
|
|
self.dim1_midpoint = None
|
|
self.dim2_midpoint = None
|
|
self.dim1_midpoint1 = None
|
|
self.dim2_midpoint1 = None
|
|
self.dim1_midpoint2 = None
|
|
self.dim2_midpoint2 = None
|
|
self.dim1_base1 = None
|
|
self.dim2_base1 = None
|
|
self.dim1_base2 = None
|
|
self.dim2_base2 = None
|
|
self.dim1_sch = None
|
|
self.dim2_sch = None
|
|
self.dim1_sc = None
|
|
self.dim2_sc = None
|
|
# Planet information
|
|
# Peg information
|
|
# Orbit2SCH information
|
|
self.dim1_position1 = None
|
|
self.dim2_position1 = None
|
|
self.dim1_position2 = None
|
|
self.dim2_position2 = None
|
|
# FormSLC information
|
|
self.dim1_mocompPosition1 = None
|
|
self.dim1_mocompPositionIndex1 = None
|
|
self.dim1_mocompPosition2 = None
|
|
self.dim1_mocompPositionIndex2 = None
|
|
# Output
|
|
self.dim1_baselineArray = None
|
|
self.dim2_baselineArray = None
|
|
# self.createPorts()
|
|
|
|
self.initOptionalAndMandatoryLists()
|
|
return None
|
|
|
|
def createPorts(self):
|
|
|
|
referenceOrbitPort = Port(name='referenceOrbit', method=self.addReferenceOrbit)
|
|
secondaryOrbitPort = Port(name='secondaryOrbit', method=self.addSecondaryOrbit)
|
|
pegPort = Port(name='peg', method=self.addPeg)
|
|
ellipsoidPort = Port(name='ellipsoid', method=self.addEllipsoid)
|
|
|
|
self._inputPorts.add(referenceOrbitPort)
|
|
self._inputPorts.add(secondaryOrbitPort)
|
|
self._inputPorts.add(pegPort)
|
|
self._inputPorts.add(ellipsoidPort)
|
|
return None
|
|
|
|
|
|
def mocompbaseline(self):
|
|
for port in self.inputPorts:
|
|
port()
|
|
|
|
self.prepareArraySizes()
|
|
self.allocateArrays()
|
|
self.setState()
|
|
mocompbaseline.mocompbaseline_Py()
|
|
self.getState()
|
|
self.deallocateArrays()
|
|
|
|
def prepareArraySizes(self):
|
|
self.dim1_baselineArray = len(self.mocompPosition1)
|
|
self.dim2_baselineArray = DIM
|
|
self.dim1_base1 = len(self.mocompPosition1)
|
|
self.dim2_base1 = DIM
|
|
self.dim1_base2 = len(self.mocompPosition1)
|
|
self.dim2_base2 = DIM
|
|
self.dim1_sch = len(self.mocompPosition1)
|
|
self.dim2_sch = DIM
|
|
self.dim1_sc = len(self.mocompPosition1)
|
|
self.dim2_sc = DIM
|
|
self.dim1_midpoint = len(self.mocompPosition1)
|
|
self.dim2_midpoint = DIM
|
|
self.dim1_midpoint1 = len(self.mocompPosition1)
|
|
self.dim2_midpoint1 = DIM
|
|
self.dim1_midpoint2 = len(self.mocompPosition1)
|
|
self.dim2_midpoint2 = DIM
|
|
|
|
def setState(self):
|
|
mocompbaseline.setStdWriter_Py(int(self.stdWriter))
|
|
mocompbaseline.setSchPosition1_Py(self.position1,
|
|
self.dim1_position1,
|
|
self.dim2_position1)
|
|
mocompbaseline.setSchPosition2_Py(self.position2,
|
|
self.dim1_position2,
|
|
self.dim2_position2)
|
|
mocompbaseline.setMocompPosition1_Py(self.mocompPosition1,
|
|
self.dim1_mocompPosition1)
|
|
mocompbaseline.setMocompPositionIndex1_Py(
|
|
self.mocompPositionIndex1,
|
|
self.dim1_mocompPositionIndex1)
|
|
mocompbaseline.setMocompPosition2_Py(self.mocompPosition2,
|
|
self.dim1_mocompPosition2)
|
|
mocompbaseline.setMocompPositionIndex2_Py(
|
|
self.mocompPositionIndex2,
|
|
self.dim1_mocompPositionIndex2)
|
|
mocompbaseline.setEllipsoidMajorSemiAxis_Py(
|
|
float(self.ellipsoidMajorSemiAxis)
|
|
)
|
|
mocompbaseline.setEllipsoidEccentricitySquared_Py(
|
|
float(self.ellipsoidEccentricitySquared)
|
|
)
|
|
mocompbaseline.setPlanetLocalRadius_Py(float(self.planetLocalRadius))
|
|
mocompbaseline.setPegLatitude_Py(float(self.pegLatitude))
|
|
mocompbaseline.setPegLongitude_Py(float(self.pegLongitude))
|
|
mocompbaseline.setPegHeading_Py(float(self.pegHeading))
|
|
mocompbaseline.setHeight_Py(float(self.height))
|
|
|
|
def setSchPosition1(self, var):
|
|
self.position1 = var
|
|
|
|
def setSchPosition2(self, var):
|
|
self.position2 = var
|
|
|
|
def setHeight(self, var):
|
|
self.height = var
|
|
def setMocompPosition1(self, var):
|
|
self.mocompPosition1 = var
|
|
|
|
def setMocompPositionIndex1(self, var):
|
|
self.mocompPositionIndex1 = var
|
|
|
|
def setMocompPosition2(self, var):
|
|
self.mocompPosition2 = var
|
|
|
|
def setMocompPositionIndex2(self, var):
|
|
self.mocompPositionIndex2 = var
|
|
|
|
def setEllipsoidMajorSemiAxis(self, var):
|
|
self.ellipsoidMajorSemiAxis = float(var)
|
|
|
|
def setEllipsoidEccentricitySquared(self, var):
|
|
self.ellipsoidEccentricitySquared = float(var)
|
|
|
|
def setPegLatitude(self, var):
|
|
self.pegLatitude = float(var)
|
|
|
|
def setPegLongitude(self, var):
|
|
self.pegLongitude = float(var)
|
|
|
|
def setPegHeading(self, var):
|
|
self.pegHeading = float(var)
|
|
|
|
def getState(self):
|
|
dim1 = mocompbaseline.get_dim1_s1_Py()
|
|
if dim1 != self.dim1_baselineArray:
|
|
self.logger.info("dim1_baselineArray changed to %d" % (dim1))
|
|
self.dim1_baselineArray = dim1
|
|
self.dim1_midpoint = dim1
|
|
self.dim1_midpoint1 = dim1
|
|
self.dim1_midpoint2 = dim1
|
|
self.dim1_base1 = dim1
|
|
self.dim1_base2 = dim1
|
|
self.dim1_sch = dim1
|
|
self.dim1_sc = dim1
|
|
|
|
self.baselineArray = mocompbaseline.getBaseline_Py(
|
|
self.dim1_baselineArray, self.dim2_baselineArray
|
|
)
|
|
self.midpoint = mocompbaseline.getMidpoint_Py(self.dim1_midpoint,
|
|
self.dim2_midpoint)
|
|
self.midpoint1 = mocompbaseline.getMidpoint1_Py(self.dim1_midpoint1,
|
|
self.dim2_midpoint1)
|
|
self.midpoint2 = mocompbaseline.getMidpoint2_Py(self.dim1_midpoint2,
|
|
self.dim2_midpoint2)
|
|
self.base1 = mocompbaseline.getBaseline1_Py(self.dim1_base1,
|
|
self.dim2_base1)
|
|
self.base2 = mocompbaseline.getBaseline2_Py(self.dim1_base2,
|
|
self.dim2_base2)
|
|
self.sch = mocompbaseline.getSch_Py(self.dim1_sch, self.dim2_sch)
|
|
self.sc = mocompbaseline.getSc_Py(self.dim1_sc, self.dim2_sc)
|
|
|
|
def getBaseline(self):
|
|
return self.baselineArray
|
|
@property
|
|
def baseline(self):
|
|
return self.baselineArray
|
|
|
|
def getMidpoint(self):
|
|
return self.midpoint
|
|
|
|
def getMidpoint1(self):
|
|
return self.midpoint1
|
|
|
|
def getMidpoint2(self):
|
|
return self.midpoint2
|
|
|
|
def getBaseline1(self):
|
|
return self.base1
|
|
|
|
def getBaseline2(self):
|
|
return self.base2
|
|
|
|
def getSchs(self):
|
|
return self.position1, self.sch
|
|
|
|
def getSc(self):
|
|
return self.sc
|
|
|
|
def allocateArrays(self):
|
|
if self.dim1_position1 is None:
|
|
self.dim1_position1 = len(self.position1)
|
|
self.dim2_position1 = len(self.position1[0])
|
|
|
|
if (not self.dim1_position1) or (not self.dim2_position1):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_sch1_Py(self.dim1_position1,
|
|
self.dim2_position1)
|
|
|
|
if self.dim1_position2 is None:
|
|
self.dim1_position2 = len(self.position2)
|
|
self.dim2_position2 = len(self.position2[0])
|
|
|
|
if (not self.dim1_position2) or (not self.dim2_position2):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_sch2_Py(self.dim1_position2,
|
|
self.dim2_position2)
|
|
|
|
if self.dim1_mocompPosition1 is None:
|
|
self.dim1_mocompPosition1 = len(self.mocompPosition1)
|
|
|
|
if (not self.dim1_mocompPosition1):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_s1_Py(self.dim1_mocompPosition1)
|
|
|
|
if self.dim1_mocompPositionIndex1 is None:
|
|
self.dim1_mocompPositionIndex1 = len(self.mocompPositionIndex1)
|
|
|
|
if (not self.dim1_mocompPositionIndex1):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_is1_Py(self.dim1_mocompPositionIndex1)
|
|
|
|
if self.dim1_mocompPosition2 is None:
|
|
self.dim1_mocompPosition2 = len(self.mocompPosition2)
|
|
|
|
if not self.dim1_mocompPosition2:
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_s2_Py(self.dim1_mocompPosition2)
|
|
|
|
if self.dim1_mocompPositionIndex2 is None:
|
|
self.dim1_mocompPositionIndex2 = len(self.mocompPositionIndex2)
|
|
|
|
if not self.dim1_mocompPositionIndex2:
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_is2_Py(self.dim1_mocompPositionIndex2)
|
|
|
|
if self.dim1_baselineArray is None:
|
|
self.dim1_baselineArray = len(self.baselineArray)
|
|
self.dim2_baselineArray = len(self.baselineArray[0])
|
|
|
|
if (not self.dim1_baselineArray) or (not self.dim2_baselineArray):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_baselineArray_Py(self.dim1_baselineArray,
|
|
self.dim2_baselineArray)
|
|
|
|
if self.dim1_midpoint is None:
|
|
self.dim1_midpoint = len(self.midpoint)
|
|
self.dim2_midpoint = len(self.midpoint[0])
|
|
|
|
if (not self.dim1_midpoint) or (not self.dim2_midpoint):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_midPointArray_Py(self.dim1_midpoint,
|
|
self.dim2_midpoint)
|
|
|
|
if self.dim1_midpoint1 is None:
|
|
self.dim1_midpoint1 = len(self.midpoint1)
|
|
self.dim2_midpoint1 = len(self.midpoint1[0])
|
|
|
|
if (not self.dim1_midpoint1) or (not self.dim2_midpoint1):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_midPointArray1_Py(self.dim1_midpoint1,
|
|
self.dim2_midpoint1)
|
|
|
|
if self.dim1_midpoint2 is None:
|
|
self.dim1_midpoint2 = len(self.midpoint2)
|
|
self.dim2_midpoint2 = len(self.midpoint2[0])
|
|
|
|
if (not self.dim1_midpoint2) or (not self.dim2_midpoint2):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_midPointArray2_Py(self.dim1_midpoint2,
|
|
self.dim2_midpoint2)
|
|
|
|
if self.dim1_base1 is None:
|
|
self.dim1_base1 = len(self.base1)
|
|
self.dim2_base1 = len(self.base1[0])
|
|
|
|
if (not self.dim1_base1) or (not self.dim2_base1):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_baselineArray1_Py(self.dim1_base1,
|
|
self.dim2_base1)
|
|
|
|
if self.dim1_base2 is None:
|
|
self.dim1_base2 = len(self.base2)
|
|
self.dim2_base2 = len(self.base2[0])
|
|
|
|
if (not self.dim1_base2) or (not self.dim2_base2):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_baselineArray2_Py(self.dim1_base2,
|
|
self.dim2_base2)
|
|
|
|
if self.dim1_sch is None:
|
|
self.dim1_sch = len(self.sch)
|
|
self.dim2_sch = len(self.sch[0])
|
|
|
|
if (not self.dim1_sch) or (not self.dim2_sch):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_schArray_Py(self.dim1_sch,
|
|
self.dim2_sch)
|
|
|
|
if self.dim1_sc is None:
|
|
self.dim1_sc = len(self.sc)
|
|
self.dim2_sc = len(self.sc[0])
|
|
|
|
if (not self.dim1_sc) or (not self.dim2_sc):
|
|
print("Error. Trying to allocate zero size array")
|
|
|
|
raise Exception
|
|
|
|
mocompbaseline.allocate_scArray_Py(self.dim1_sc, self.dim2_sc)
|
|
|
|
|
|
def deallocateArrays(self):
|
|
mocompbaseline.deallocate_sch1_Py()
|
|
mocompbaseline.deallocate_sch2_Py()
|
|
mocompbaseline.deallocate_s1_Py()
|
|
mocompbaseline.deallocate_is1_Py()
|
|
mocompbaseline.deallocate_s2_Py()
|
|
mocompbaseline.deallocate_is2_Py()
|
|
mocompbaseline.deallocate_baselineArray_Py()
|
|
mocompbaseline.deallocate_midPointArray_Py()
|
|
mocompbaseline.deallocate_midPointArray1_Py()
|
|
mocompbaseline.deallocate_midPointArray2_Py()
|
|
mocompbaseline.deallocate_baselineArray1_Py()
|
|
mocompbaseline.deallocate_baselineArray2_Py()
|
|
mocompbaseline.deallocate_schArray_Py()
|
|
mocompbaseline.deallocate_scArray_Py()
|
|
|
|
def addPeg(self):
|
|
import math
|
|
peg = self._inputPorts.getPort(name='peg').getObject()
|
|
if peg:
|
|
try:
|
|
self.planetLocalRadius = peg.getRadiusOfCurvature()
|
|
self.pegLatitude = math.radians(peg.getLatitude())
|
|
self.pegLongitude = math.radians(peg.getLongitude())
|
|
self.pegHeading = math.radians(peg.getHeading())
|
|
except AttributeError:
|
|
self.logger.error("Object %s requires getLatitude(), getLongitude() and getHeading() methods" % (peg.__class__))
|
|
|
|
def addEllipsoid(self):
|
|
ellipsoid = self._inputPorts.getPort(name='ellipsoid').getObject()
|
|
if(ellipsoid):
|
|
try:
|
|
self.ellipsoidEccentricitySquared = ellipsoid.get_e2()
|
|
self.ellipsoidMajorSemiAxis = ellipsoid.get_a()
|
|
except AttributeError:
|
|
self.logger.error("Object %s requires get_e2() and get_a() methods" % (ellipsoid.__class__))
|
|
|
|
def addReferenceOrbit(self):
|
|
orbit = self._inputPorts.getPort(name='referenceOrbit').getObject()
|
|
if (orbit):
|
|
try:
|
|
(time,position,velocity,offset) = orbit._unpackOrbit()
|
|
self.time = time
|
|
self.position1 = position
|
|
except AttributeError:
|
|
self.logger.error("Object %s requires an _unpackOrbit() method" % (orbit.__class__))
|
|
raise AttributeError
|
|
|
|
def addSecondaryOrbit(self):
|
|
orbit = self._inputPorts.getPort(name='secondaryOrbit').getObject()
|
|
if (orbit):
|
|
try:
|
|
(time,position,velocity,offset) = orbit._unpackOrbit()
|
|
self.time = time
|
|
self.position2 = position
|
|
except AttributeError:
|
|
self.logger.error("Object %s requires an _unpackOrbit() method" % (orbit.__class__))
|
|
raise AttributeError
|
|
|
|
|
|
|
|
pass
|