- java.lang.Object
-
- spice.testutils.JNITestutils
-
public class JNITestutils extends java.lang.Object
Class JNITestutils provides JNI C wrappers for the CSPICE tutils_c test utility wrappers. The JNI C wrappers support implementation of tspice in Java.Version 3.0.0 29-OCT-2016 (NJB) Added declarations of methods natdsk t_cg t_elds2z t_secds2 t_smldsk t_torus t_wrtplt t_wrtplz zzellplt zzpsball zzpsbox zzpspoly zzpsscal zzpsun zzpsxfrm zzpsxlat
Version 2.0.0 07-JUN-2014 (NJB) Added declarations of methods illum subpt subslr zzt_boddsk
Version 1.0.0 17-MAY-2010 (NJB) Updated to accommodate change to argument list of tsetup_c.
Version 1.0.0 03-JAN-2010 (NJB)
-
-
Constructor Summary
Constructors Constructor Description JNITestutils()
-
Method Summary
Modifier and Type Method Description static boolean
chckad(java.lang.String name, double[] array, java.lang.String comp, double[] exp, double tol)
Check the values in a double precision array.static boolean
chckai(java.lang.String name, int[] array, java.lang.String comp, int[] exp)
Check the values in an integer array.static boolean
chcksc(java.lang.String name, java.lang.String val, java.lang.String comp, java.lang.String exp)
Check a string scalar value against some expected value.static boolean
chcksd(java.lang.String name, double val, java.lang.String comp, double exp, double tol)
Check a double precision scalar value against some expected value.static boolean
chcksi(java.lang.String name, int val, java.lang.String comp, int exp, int tol)
Check an integer scalar value against some expected value.static boolean
chcksl(java.lang.String name, boolean val, boolean exp)
Check a boolean scalar value against some expected value.static boolean
chckth(boolean expected, java.lang.String expectedMsg, java.lang.Exception ex)
Check whether an expected SpiceException was thrown.Note that this not a native method.static boolean
chckxc(boolean except, java.lang.String shmsg)
Check whether an expected short error message was signaled.static void
illum(java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint, double[] angles)
Call the deprecated CSPICE routine illum_c.static void
natdsk(java.lang.String dsk, java.lang.String aframe, int anlon, int anlat, java.lang.String bframe, int bnlon, int bnlat)
Create a DSK file for use with Nat's solar system.static void
natik(java.lang.String IK, java.lang.String SPK, java.lang.String PCK, boolean loadIK, boolean keepIK)
Create a IK file for use with Nat's solar system.static void
natpck(java.lang.String file, boolean load, boolean keep)
Create a PCK file for Nat's solar system.static int
natspk(java.lang.String file, boolean load)
Create an SPK file for Nat's solar system.static void
subpt(java.lang.String method, java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint, double[] alt)
Call the deprecated CSPICE routine subpt_c.static void
subsol(java.lang.String method, java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint)
Call the deprecated CSPICE routine subsol_c.static void
t_cg(int bodyid, int surfid, java.lang.String frame, java.lang.String dsk)
Write a DSK containing an extremely simplified shape model representing the nucleus of comet Churymov-Gerasimenko.The model is a union of boxes.static void
t_elds2z(int bodyid, int surfid, java.lang.String frame, int nlon, int nlat, java.lang.String dsk)
Write a type 2 DSK containing a tessellated ellipsoid.Use default values to simplify the call.static void
t_secds2(int bodyid, int surfid, java.lang.String frname, double first, double last, int corsys, double[] corpar, double[][] bounds, double a, double b, double c, int nlon, int nlat, boolean makvtl, boolean usepad, java.lang.String dsk)
Write a type 2 DSK containing a section of a tessellated ellipsoid.static void
t_smldsk(int bodyid, int surfid, java.lang.String frname, java.lang.String dsk)
Write a trivial type 2 DSK containing one plate.static void
t_torus(int bodyid, int surfid, java.lang.String frname, int npolyv, int ncross, double r, double rcross, double[] center, double[] normal, java.lang.String dsk)
Write a DSK containing a plate model representing a torus.static void
t_wrtplt(int bodyid, int surfid, java.lang.String frname, double first, double last, int corsys, double[] corpar, double[][] bounds, int nv, int np, double[] usrvrt, int[] usrplt, boolean makvtl, java.lang.String dsk)
Write a type 2 DSK containing vertices and plates passed in by the caller.static void
t_wrtplz(int bodyid, int surfid, java.lang.String frname, int nv, int np, double[] usrvrt, int[] usrplt, java.lang.String dsk)
Write a type 2 DSK containing vertices and plates passed in by the caller.Use default values to simplify the call.static void
tcase(java.lang.String title)
Set the title for the next test case and log the success of the last test case if it passed and logging of individual test case success is enabled.static void
tclose()
Close out all testing.static void
topen(java.lang.String testFamilyName)
Open a collection of tests.static void
tsetup(java.lang.String commandLine, java.lang.String logname, java.lang.String version)
This routine handles the initializations needed for making use of the SPICE testing utilities.static void
tstatd(double et, double[][] matrix, double[] av)
This routine produces attitude and angular velocity values that should duplicate the values for the test spacecraft with ID code -10001.static int
tstck3(java.lang.String cknm, java.lang.String sclknm, boolean loadck, boolean loadsc, boolean keepsc)
This routine creates, optionally loads, and optionally deletes a type 3 C-kernel and an associated SCLK kernel.static void
tstlsk()
This routine creates, loads, and deletes a leapseconds kernel.static void
tstpck(java.lang.String pck, boolean load, boolean keep)
Create and if appropriate load a test PCK kernel.static int
tstspk(java.lang.String file, boolean load)
This routine creates and optionally loads an SPK kernel.If the file is loaded, the file handle is returned.static void
tsttxt(java.lang.String namtxt, java.lang.String[] txt, boolean load, boolean keep)
Create and if appropriate load a test NAIF text kernel.static boolean
tsuccess()
Indicate whether all test cases since set up via t_begin_ have passed.static void
zzellplt(double a, double b, double c, int nlon, int nlat, int[] nv, double[] vout, int[] np, int[] pout)
Create a set of triangular plates covering a specified triaxial ellipsoid.static void
zzpsball(double r, int nlon, int nlat, int[] nv, double[] vout, int[] np, int[] pout)
Create a plate set representing a sphere centered at the origin.The radius of the sphere is specified by the caller.static void
zzpsbox(double a, double b, double c, int[] nv, double[] vout, int[] np, int[] pout)
Create a plate set representing a box centered at the origin.The dimensions of the box are specified by the caller.static void
zzpspoly(int n, double[] vrtces, int[] nv, double[] vout, int[] np, int[] pout)
Create a plate set with a polygonal boundary in the X-Y plane.The normal vectors of the plates point in the +Z direction.The input vertices are required to be ordered in the positive sense about the +Z axis.static void
zzpsscal(double scale, double[] v1, int[] nv, double[] vout)
Scale a plate set: multiply the vertices of a plate set by a specified factor.The cardinality of v1 is assumed to be v1.length.static void
zzpsun(double[] v1, int[] p1, double[] v2, int[] p2, int[] nv, double[] vout, int[] np, int[] pout)
Compute the union of two plate sets.The cardinalities of the input arrays v1 p1 v2 p2 are assumed to be the lengths of the respective arrays.static void
zzpsxfrm(double[] v1, double[][] xform, int[] nv, double[] vout)
Apply a linear transformation to a plate set: left-multiply the vertices of a plate set by a specified 3x3 matrix.The cardinality of v1 is assumed to be v1.length.static void
zzpsxlat(double[] v1, double[] offset, int[] nv, double[] vout)
Apply a translation to a plate set: add a specified offset vector to the vertices of a plate set.The cardinality of v1 is assumed to be v1.length.static int
zztboddsk(java.lang.String dsk, java.lang.String body, java.lang.String fixref, boolean load)
Generate a type 2 DSK for a specified body.The DSK surface approximates that of the reference ellipsoid of the body.
-
-
-
Method Detail
-
chckad
public static boolean chckad(java.lang.String name, double[] array, java.lang.String comp, double[] exp, double tol) throws SpiceErrorException
Check the values in a double precision array.- Parameters:
name
-tol
-array
-exp
-comp
-- Returns:
- Throws:
SpiceErrorException
-
chckai
public static boolean chckai(java.lang.String name, int[] array, java.lang.String comp, int[] exp) throws SpiceErrorException
Check the values in an integer array.- Parameters:
name
-exp
-array
-comp
-- Returns:
- Throws:
SpiceErrorException
-
chcksc
public static boolean chcksc(java.lang.String name, java.lang.String val, java.lang.String comp, java.lang.String exp) throws SpiceErrorException
Check a string scalar value against some expected value.- Parameters:
name
-exp
-val
-comp
-- Returns:
- Throws:
SpiceErrorException
-
chcksd
public static boolean chcksd(java.lang.String name, double val, java.lang.String comp, double exp, double tol) throws SpiceErrorException
Check a double precision scalar value against some expected value.- Parameters:
name
-tol
-val
-exp
-comp
-- Returns:
- Throws:
SpiceErrorException
-
chcksi
public static boolean chcksi(java.lang.String name, int val, java.lang.String comp, int exp, int tol) throws SpiceErrorException
Check an integer scalar value against some expected value.- Parameters:
name
-tol
-val
-exp
-comp
-- Returns:
- Throws:
SpiceErrorException
-
chcksl
public static boolean chcksl(java.lang.String name, boolean val, boolean exp) throws SpiceErrorException
Check a boolean scalar value against some expected value.- Parameters:
name
-exp
-val
-- Returns:
- Throws:
SpiceErrorException
-
chckth
public static boolean chckth(boolean expected, java.lang.String expectedMsg, java.lang.Exception ex) throws SpiceErrorException
Check whether an expected SpiceException was thrown.Note that this not a native method.- Parameters:
expected
-ex
-expectedMsg
-- Returns:
- Throws:
SpiceErrorException
-
chckxc
public static boolean chckxc(boolean except, java.lang.String shmsg) throws SpiceErrorException
Check whether an expected short error message was signaled.- Parameters:
except
-shmsg
-- Returns:
- Throws:
SpiceErrorException
-
illum
public static void illum(java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint, double[] angles) throws SpiceErrorException
Call the deprecated CSPICE routine illum_c.- Parameters:
target
-angles
-et
-spoint
-abcorr
-obsrvr
-- Throws:
SpiceErrorException
-
natdsk
public static void natdsk(java.lang.String dsk, java.lang.String aframe, int anlon, int anlat, java.lang.String bframe, int bnlon, int bnlat) throws SpiceErrorException
Create a DSK file for use with Nat's solar system.- Parameters:
dsk
-bnlat
-aframe
-bnlon
-anlon
-bframe
-anlat
-- Throws:
SpiceErrorException
-
natik
public static void natik(java.lang.String IK, java.lang.String SPK, java.lang.String PCK, boolean loadIK, boolean keepIK) throws SpiceErrorException
Create a IK file for use with Nat's solar system.- Parameters:
IK
-keepIK
-SPK
-loadIK
-PCK
-- Throws:
SpiceErrorException
-
natpck
public static void natpck(java.lang.String file, boolean load, boolean keep) throws SpiceErrorException
Create a PCK file for Nat's solar system.This method creates the following PCK file:
\begindata NAIF_BODY_NAME += ( 'ALPHA', 'BETA', 'GAMMA' ) NAIF_BODY_CODE += ( 1000, 2000, 1001 ) \begintext Radii for ALPHA BETA GAMMA \begindata BODY1000_RADII = ( 0.73249397533875424E+05, 0.36624698766937712E+05, 0.36624698766937712E+05 ) BODY1001_RADII = ( 1.E4, 1.E4, 1.E4 ) BODY2000_RADII = ( 0.22891526271046937E+04, 0.22891526271046937E+04, 0.1E+04 ) \begintext Orientation data for ALPHA BETA GAMMA \begindata BODY1000_POLE_RA = ( 0. 0. 0. ) BODY1000_POLE_DEC = ( +90. 0. 0. ) BODY1000_PM = ( 0. 0. 0. ) BODY1001_POLE_RA = ( +180. 0. 0. ) BODY1001_POLE_DEC = ( 0. 0. 0. ) BODY1001_PM = ( +180. 360. 0. ) BODY2000_POLE_RA = ( 0. 0. 0. ) BODY2000_POLE_DEC = ( +90. 0. 0. ) BODY2000_PM = ( 0. 0. 0. ) \begintext Body-fixed frame specifications for ALPHA BETA GAMMA \begindata FRAME_ALPHAFIXED = 1000001 FRAME_1000001_NAME = 'ALPHAFIXED' FRAME_1000001_CLASS = 4 FRAME_1000001_CLASS_ID = 1000001 FRAME_1000001_CENTER = 1000 TKFRAME_1000001_RELATIVE = 'BETAFIXED' TKFRAME_1000001_SPEC = 'MATRIX' TKFRAME_1000001_MATRIX = ( 0, 0, 1, 1, 0, 0, 0, 1, 0 ) OBJECT_1000_FRAME = 'ALPHAFIXED' FRAME_BETAFIXED = 1000002 FRAME_1000002_NAME = 'BETAFIXED' FRAME_1000002_CLASS = 2 FRAME_1000002_CLASS_ID = 2000 FRAME_1000002_CENTER = 2000 OBJECT_2000_FRAME = 'BETAFIXED' FRAME_GAMMAFIXED = 1000003 FRAME_1000003_NAME = 'GAMMAFIXED' FRAME_1000003_CLASS = 2 FRAME_1000003_CLASS_ID = 1001 FRAME_1000003_CENTER = 1001 OBJECT_1001_FRAME = 'GAMMAFIXED' \begintext View frames for body ALPHA relative to the Sun ALPHA_VIEW_XY orbital motion of ALPHA lies in X-Y plane of this frame. ALPHA_VIEW_XZ orbital motion of ALPHA lies in X-Z plane of this frame. \begindata FRAME_ALPHA_VIEW_XY = 1700000 FRAME_1700000_NAME = 'ALPHA_VIEW_XY' FRAME_1700000_CLASS = 5 FRAME_1700000_CLASS_ID = 1700000 FRAME_1700000_CENTER = 'ALPHA' FRAME_1700000_RELATIVE = 'J2000' FRAME_1700000_DEF_STYLE = 'PARAMETERIZED' FRAME_1700000_FAMILY = 'TWO-VECTOR' FRAME_1700000_PRI_AXIS = 'X' FRAME_1700000_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700000_PRI_OBSERVER = 'SUN' FRAME_1700000_PRI_TARGET = 'ALPHA' FRAME_1700000_PRI_ABCORR = 'NONE' FRAME_1700000_SEC_AXIS = 'Y' FRAME_1700000_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700000_SEC_OBSERVER = 'SUN' FRAME_1700000_SEC_TARGET = 'ALPHA' FRAME_1700000_SEC_ABCORR = 'NONE' FRAME_1700000_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XZ = 1700001 FRAME_1700001_NAME = 'ALPHA_VIEW_XZ' FRAME_1700001_CLASS = 5 FRAME_1700001_CLASS_ID = 1700001 FRAME_1700001_CENTER = 'ALPHA' FRAME_1700001_RELATIVE = 'J2000' FRAME_1700001_DEF_STYLE = 'PARAMETERIZED' FRAME_1700001_FAMILY = 'TWO-VECTOR' FRAME_1700001_PRI_AXIS = 'X' FRAME_1700001_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700001_PRI_OBSERVER = 'SUN' FRAME_1700001_PRI_TARGET = 'ALPHA' FRAME_1700001_PRI_ABCORR = 'NONE' FRAME_1700001_SEC_AXIS = 'Z' FRAME_1700001_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700001_SEC_OBSERVER = 'SUN' FRAME_1700001_SEC_TARGET = 'ALPHA' FRAME_1700001_SEC_ABCORR = 'NONE' FRAME_1700001_SEC_FRAME = 'J2000' \begintext Aberration corrected view frames for body ALPHA relative to the Sun \begindata FRAME_ALPHA_VIEW_XY_CN = 1700002 FRAME_1700002_NAME = 'ALPHA_VIEW_XY_CN' FRAME_1700002_CLASS = 5 FRAME_1700002_CLASS_ID = 1700002 FRAME_1700002_CENTER = 'ALPHA' FRAME_1700002_RELATIVE = 'J2000' FRAME_1700002_DEF_STYLE = 'PARAMETERIZED' FRAME_1700002_FAMILY = 'TWO-VECTOR' FRAME_1700002_PRI_AXIS = 'X' FRAME_1700002_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700002_PRI_OBSERVER = 'SUN' FRAME_1700002_PRI_TARGET = 'ALPHA' FRAME_1700002_PRI_ABCORR = 'CN' FRAME_1700002_SEC_AXIS = 'Y' FRAME_1700002_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700002_SEC_OBSERVER = 'SUN' FRAME_1700002_SEC_TARGET = 'ALPHA' FRAME_1700002_SEC_ABCORR = 'CN' FRAME_1700002_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XY_CNS = 1700003 FRAME_1700003_NAME = 'ALPHA_VIEW_XY_CNS' FRAME_1700003_CLASS = 5 FRAME_1700003_CLASS_ID = 1700003 FRAME_1700003_CENTER = 'ALPHA' FRAME_1700003_RELATIVE = 'J2000' FRAME_1700003_DEF_STYLE = 'PARAMETERIZED' FRAME_1700003_FAMILY = 'TWO-VECTOR' FRAME_1700003_PRI_AXIS = 'X' FRAME_1700003_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700003_PRI_OBSERVER = 'SUN' FRAME_1700003_PRI_TARGET = 'ALPHA' FRAME_1700003_PRI_ABCORR = 'CN+S' FRAME_1700003_SEC_AXIS = 'Y' FRAME_1700003_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700003_SEC_OBSERVER = 'SUN' FRAME_1700003_SEC_TARGET = 'ALPHA' FRAME_1700003_SEC_ABCORR = 'CN+S' FRAME_1700003_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XY_XCN = 1700004 FRAME_1700004_NAME = 'ALPHA_VIEW_XY_XCN' FRAME_1700004_CLASS = 5 FRAME_1700004_CLASS_ID = 1700004 FRAME_1700004_CENTER = 'ALPHA' FRAME_1700004_RELATIVE = 'J2000' FRAME_1700004_DEF_STYLE = 'PARAMETERIZED' FRAME_1700004_FAMILY = 'TWO-VECTOR' FRAME_1700004_PRI_AXIS = 'X' FRAME_1700004_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700004_PRI_OBSERVER = 'SUN' FRAME_1700004_PRI_TARGET = 'ALPHA' FRAME_1700004_PRI_ABCORR = 'XCN' FRAME_1700004_SEC_AXIS = 'Y' FRAME_1700004_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700004_SEC_OBSERVER = 'SUN' FRAME_1700004_SEC_TARGET = 'ALPHA' FRAME_1700004_SEC_ABCORR = 'XCN' FRAME_1700004_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XY_XCNS = 1700005 FRAME_1700005_NAME = 'ALPHA_VIEW_XY_XCNS' FRAME_1700005_CLASS = 5 FRAME_1700005_CLASS_ID = 1700005 FRAME_1700005_CENTER = 'ALPHA' FRAME_1700005_RELATIVE = 'J2000' FRAME_1700005_DEF_STYLE = 'PARAMETERIZED' FRAME_1700005_FAMILY = 'TWO-VECTOR' FRAME_1700005_PRI_AXIS = 'X' FRAME_1700005_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700005_PRI_OBSERVER = 'SUN' FRAME_1700005_PRI_TARGET = 'ALPHA' FRAME_1700005_PRI_ABCORR = 'XCN+S' FRAME_1700005_SEC_AXIS = 'Y' FRAME_1700005_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700005_SEC_OBSERVER = 'SUN' FRAME_1700005_SEC_TARGET = 'ALPHA' FRAME_1700005_SEC_ABCORR = 'XCN+S' FRAME_1700005_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XZ_CN = 1700006 FRAME_1700006_NAME = 'ALPHA_VIEW_XZ_CN' FRAME_1700006_CLASS = 5 FRAME_1700006_CLASS_ID = 1700006 FRAME_1700006_CENTER = 'ALPHA' FRAME_1700006_RELATIVE = 'J2000' FRAME_1700006_DEF_STYLE = 'PARAMETERIZED' FRAME_1700006_FAMILY = 'TWO-VECTOR' FRAME_1700006_PRI_AXIS = 'X' FRAME_1700006_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700006_PRI_OBSERVER = 'SUN' FRAME_1700006_PRI_TARGET = 'ALPHA' FRAME_1700006_PRI_ABCORR = 'CN' FRAME_1700006_SEC_AXIS = 'Z' FRAME_1700006_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700006_SEC_OBSERVER = 'SUN' FRAME_1700006_SEC_TARGET = 'ALPHA' FRAME_1700006_SEC_ABCORR = 'CN' FRAME_1700006_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XZ_CNS = 1700007 FRAME_1700007_NAME = 'ALPHA_VIEW_XZ_CNS' FRAME_1700007_CLASS = 5 FRAME_1700007_CLASS_ID = 1700007 FRAME_1700007_CENTER = 'ALPHA' FRAME_1700007_RELATIVE = 'J2000' FRAME_1700007_DEF_STYLE = 'PARAMETERIZED' FRAME_1700007_FAMILY = 'TWO-VECTOR' FRAME_1700007_PRI_AXIS = 'X' FRAME_1700007_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700007_PRI_OBSERVER = 'SUN' FRAME_1700007_PRI_TARGET = 'ALPHA' FRAME_1700007_PRI_ABCORR = 'CN+S' FRAME_1700007_SEC_AXIS = 'Z' FRAME_1700007_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700007_SEC_OBSERVER = 'SUN' FRAME_1700007_SEC_TARGET = 'ALPHA' FRAME_1700007_SEC_ABCORR = 'CN+S' FRAME_1700007_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XZ_XCN = 1700005 FRAME_1700005_NAME = 'ALPHA_VIEW_XZ_XCN' FRAME_1700005_CLASS = 5 FRAME_1700005_CLASS_ID = 1700005 FRAME_1700005_CENTER = 'ALPHA' FRAME_1700005_RELATIVE = 'J2000' FRAME_1700005_DEF_STYLE = 'PARAMETERIZED' FRAME_1700005_FAMILY = 'TWO-VECTOR' FRAME_1700005_PRI_AXIS = 'X' FRAME_1700005_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700005_PRI_OBSERVER = 'SUN' FRAME_1700005_PRI_TARGET = 'ALPHA' FRAME_1700005_PRI_ABCORR = 'XCN' FRAME_1700005_SEC_AXIS = 'Z' FRAME_1700005_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700005_SEC_OBSERVER = 'SUN' FRAME_1700005_SEC_TARGET = 'ALPHA' FRAME_1700005_SEC_ABCORR = 'XCN' FRAME_1700005_SEC_FRAME = 'J2000' FRAME_ALPHA_VIEW_XZ_XCNS = 1700008 FRAME_1700008_NAME = 'ALPHA_VIEW_XZ_XCNS' FRAME_1700008_CLASS = 5 FRAME_1700008_CLASS_ID = 1700008 FRAME_1700008_CENTER = 'ALPHA' FRAME_1700008_RELATIVE = 'J2000' FRAME_1700008_DEF_STYLE = 'PARAMETERIZED' FRAME_1700008_FAMILY = 'TWO-VECTOR' FRAME_1700008_PRI_AXIS = 'X' FRAME_1700008_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700008_PRI_OBSERVER = 'SUN' FRAME_1700008_PRI_TARGET = 'ALPHA' FRAME_1700008_PRI_ABCORR = 'XCN+S' FRAME_1700008_SEC_AXIS = 'Z' FRAME_1700008_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700008_SEC_OBSERVER = 'SUN' FRAME_1700008_SEC_TARGET = 'ALPHA' FRAME_1700008_SEC_ABCORR = 'XCN+S' FRAME_1700008_SEC_FRAME = 'J2000' \begintext View frames for body BETA relative to the Sun BETA_VIEW_XY orbital motion of BETA lies in X-Y plane of this frame. BETA_VIEW_XZ orbital motion of BETA lies in X-Z plane of this frame. \begindata FRAME_BETA_VIEW_XY = 1700009 FRAME_1700009_NAME = 'BETA_VIEW_XY' FRAME_1700009_CLASS = 5 FRAME_1700009_CLASS_ID = 1700009 FRAME_1700009_CENTER = 'BETA' FRAME_1700009_RELATIVE = 'J2000' FRAME_1700009_DEF_STYLE = 'PARAMETERIZED' FRAME_1700009_FAMILY = 'TWO-VECTOR' FRAME_1700009_PRI_AXIS = 'X' FRAME_1700009_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700009_PRI_OBSERVER = 'SUN' FRAME_1700009_PRI_TARGET = 'BETA' FRAME_1700009_PRI_ABCORR = 'NONE' FRAME_1700009_SEC_AXIS = 'Y' FRAME_1700009_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700009_SEC_OBSERVER = 'SUN' FRAME_1700009_SEC_TARGET = 'BETA' FRAME_1700009_SEC_ABCORR = 'NONE' FRAME_1700009_SEC_FRAME = 'J2000' FRAME_BETA_VIEW_XZ = 1700010 FRAME_1700010_NAME = 'BETA_VIEW_XZ' FRAME_1700010_CLASS = 5 FRAME_1700010_CLASS_ID = 1700010 FRAME_1700010_CENTER = 'BETA' FRAME_1700010_RELATIVE = 'J2000' FRAME_1700010_DEF_STYLE = 'PARAMETERIZED' FRAME_1700010_FAMILY = 'TWO-VECTOR' FRAME_1700010_PRI_AXIS = 'X' FRAME_1700010_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_1700010_PRI_OBSERVER = 'SUN' FRAME_1700010_PRI_TARGET = 'BETA' FRAME_1700010_PRI_ABCORR = 'NONE' FRAME_1700010_SEC_AXIS = 'Z' FRAME_1700010_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_1700010_SEC_OBSERVER = 'SUN' FRAME_1700010_SEC_TARGET = 'BETA' FRAME_1700010_SEC_ABCORR = 'NONE' FRAME_1700010_SEC_FRAME = 'J2000' \begintext Radii and GM for the Sun. \begindata BODY10_RADII = ( 1000, 1000, 1000 ) BODY10_GM = 0.99745290739151156E+09 \begintext GM for ALPHA. This GM, together with a circular orbit of radius 1.E5 for body GAMMA, yields a 24 hour period for GAMMA. \begindata BODY1000_GM = 0.52884968712970233E+07 \begintext
- Parameters:
file
-keep
-load
-- Throws:
SpiceErrorException
-
natspk
public static int natspk(java.lang.String file, boolean load) throws SpiceErrorException
Create an SPK file for Nat's solar system.This SPK file represents a contrived "solar system" containing a "Sun" and two planets, ALPHA and BETA. Body ALPHA has a moon named GAMMA. GAMMA orbits ALPHA in a plane normal to the J2000 X-axis, with a period of 24 hours. The Sun has zero offset from the solar system barycenter. Both planets orbit the Sun with circular two-body motion. BETA orbits closer to the Sun than ALPHA. When the radii of BETA and ALPHA are set appropriately, BETA occults ALPHA as seen from the center of the Sun at regular intervals: With aberration correction NONE Occultation starts: 2000 JAN 1 12:00:00 TDB and recurs every 24 hours Occultation ends: 2000 JAN 1 12:10:00 TDB and recurs every 24 hours With aberration correction LT Occultation starts: 2000 JAN 1 12:00:01 TDB and recurs every 24 hours Occultation ends: 2000 JAN 1 12:10:01 TDB and recurs every 24 hours At the J2000 epoch, the vector from the center of the Sun to the center of body ALPHA lies on the +X axis of the J2000 frame. The default time range covered by the file is approximately 1899 DEC 31 12:00:00 TDB 2100 DEC 31 12:00:00 TDB The following parameters control the behavior of this solar system: N1: Occultation duration, seconds N2: Ratio of angular size of alpha to that of beta N3: Ratio of angular velocity of beta to that of alpha N4: Time between occultations, seconds BASELT: Offset of occultation time with LT correction, seconds. If these parameters are changed, the radii of ALPHA and BETA must be re-computed. Below we derive the constants needed to create the ephemeris for the planets, as well as their radii. Relationships between angular velocities, orbital radii: OMEGA = N * OMEGA (definition) beta 3 alpha N4 is time between occultations: ( OMEGA - OMEGA ) * N4 = 2 * Pi beta alpha OMEGA = 2 * Pi / ( N4 * ( N3 - 1 ) ) alpha 2 2 2 ACC = V / R = OMEGA * R = GM / R i i i i i i 3 1/2 OMEGA = ( GM / R ) i i 3/2 OMEGA / OMEGA = ( R / R ) = N beta alpha alpha beta 3 2/3 R = N * R alpha 3 beta OMEGA = OMEGA - OMEGA (definition) delta beta alpha Central GM: 2 GM = OMEGA / R alpha alpha Light time correction---relationship between orbital radius and time offset of occultation when light time correction is used: THETA = -LT * OMEGA i i i GAMMA = THETA + OMEGA * BASELT i i i GAMMA = GAMMA => alpha beta OMEGA ( BASELT - LT ) = OMEGA ( BASELT - LT ) => alpha alpha beta beta BASELT - R /c = N * ( BASELT - R /c ) => alpha 3 beta 2/3 BASELT - N * R /c = N * ( BASELT - R /c ) => 3 beta 3 beta 2/3 ( R / c ) ( N - N ) = BASELT * ( N - 1 ) => beta 3 3 3 2/3 R = c * BASELT * ( N - 1 ) / ( N - N ) beta 3 3 3 Ratio of angular sizes of Alpha and Beta: N2 = ARAD / ARAD (definition) alpha beta Occultation duration: N1 = duration (definition) Angular movement of beta past alpha during occultation, definition of angular size of beta: PROG = N1 * OMEGA delta From start to finish of occultation, beta moves past alpha by the angular diameter of alpha plus 2*the angular radius of beta: PROG = 2 * ( ARAD + ARAD ) alpha beta = 2 * ARAD ( 1 + N2 ) => beta ARAD = N1 * OMEGA / ( 2 * (1 + N2) ) beta delta Radii of alpha, beta: RAD = R * sin ( ARAD ) i i i
- Parameters:
file
-load
-- Returns:
- Throws:
SpiceErrorException
-
subpt
public static void subpt(java.lang.String method, java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint, double[] alt) throws SpiceErrorException
Call the deprecated CSPICE routine subpt_c.- Parameters:
method
-alt
-target
-spoint
-et
-obsrvr
-abcorr
-- Throws:
SpiceErrorException
-
subsol
public static void subsol(java.lang.String method, java.lang.String target, double et, java.lang.String abcorr, java.lang.String obsrvr, double[] spoint) throws SpiceErrorException
Call the deprecated CSPICE routine subsol_c.- Parameters:
method
-spoint
-target
-obsrvr
-et
-abcorr
-- Throws:
SpiceErrorException
-
t_cg
public static void t_cg(int bodyid, int surfid, java.lang.String frame, java.lang.String dsk) throws SpiceErrorException
Write a DSK containing an extremely simplified shape model representing the nucleus of comet Churymov-Gerasimenko.The model is a union of boxes.- Parameters:
bodyid
-dsk
-surfid
-frame
-- Throws:
SpiceErrorException
-
t_elds2z
public static void t_elds2z(int bodyid, int surfid, java.lang.String frame, int nlon, int nlat, java.lang.String dsk) throws SpiceErrorException
Write a type 2 DSK containing a tessellated ellipsoid.Use default values to simplify the call.- Parameters:
bodyid
-dsk
-surfid
-nlat
-frame
-nlon
-- Throws:
SpiceErrorException
-
t_secds2
public static void t_secds2(int bodyid, int surfid, java.lang.String frname, double first, double last, int corsys, double[] corpar, double[][] bounds, double a, double b, double c, int nlon, int nlat, boolean makvtl, boolean usepad, java.lang.String dsk) throws SpiceErrorException
Write a type 2 DSK containing a section of a tessellated ellipsoid.- Parameters:
bodyid
-dsk
-surfid
-usepad
-frname
-makvtl
-first
-nlat
-last
-nlon
-corsys
-c
-corpar
-b
-bounds
-a
-- Throws:
SpiceErrorException
-
t_smldsk
public static void t_smldsk(int bodyid, int surfid, java.lang.String frname, java.lang.String dsk) throws SpiceErrorException
Write a trivial type 2 DSK containing one plate.- Parameters:
bodyid
-dsk
-surfid
-frname
-- Throws:
SpiceErrorException
-
t_torus
public static void t_torus(int bodyid, int surfid, java.lang.String frname, int npolyv, int ncross, double r, double rcross, double[] center, double[] normal, java.lang.String dsk) throws SpiceErrorException
Write a DSK containing a plate model representing a torus.- Parameters:
bodyid
-dsk
-surfid
-normal
-frname
-center
-npolyv
-rcross
-ncross
-r
-- Throws:
SpiceErrorException
-
t_wrtplt
public static void t_wrtplt(int bodyid, int surfid, java.lang.String frname, double first, double last, int corsys, double[] corpar, double[][] bounds, int nv, int np, double[] usrvrt, int[] usrplt, boolean makvtl, java.lang.String dsk) throws SpiceErrorException
Write a type 2 DSK containing vertices and plates passed in by the caller.- Parameters:
bodyid
-dsk
-surfid
-makvtl
-frname
-usrplt
-first
-usrvrt
-last
-np
-corsys
-nv
-corpar
-bounds
-- Throws:
SpiceErrorException
-
t_wrtplz
public static void t_wrtplz(int bodyid, int surfid, java.lang.String frname, int nv, int np, double[] usrvrt, int[] usrplt, java.lang.String dsk) throws SpiceErrorException
Write a type 2 DSK containing vertices and plates passed in by the caller.Use default values to simplify the call.- Parameters:
bodyid
-dsk
-surfid
-usrplt
-frname
-usrvrt
-nv
-np
-- Throws:
SpiceErrorException
-
tcase
public static void tcase(java.lang.String title) throws SpiceErrorException
Set the title for the next test case and log the success of the last test case if it passed and logging of individual test case success is enabled.- Parameters:
title
-- Throws:
SpiceErrorException
-
tclose
public static void tclose() throws SpiceErrorException
Close out all testing.- Throws:
SpiceErrorException
-
topen
public static void topen(java.lang.String testFamilyName) throws SpiceErrorException
Open a collection of tests.- Parameters:
testFamilyName
-- Throws:
SpiceErrorException
-
tsetup
public static void tsetup(java.lang.String commandLine, java.lang.String logname, java.lang.String version) throws SpiceErrorException
This routine handles the initializations needed for making use of the SPICE testing utilities.- Parameters:
commandLine
-version
-logname
-- Throws:
SpiceErrorException
-
tstatd
public static void tstatd(double et, double[][] matrix, double[] av) throws SpiceErrorException
This routine produces attitude and angular velocity values that should duplicate the values for the test spacecraft with ID code -10001.- Parameters:
et
-av
-matrix
-- Throws:
SpiceErrorException
-
tstck3
public static int tstck3(java.lang.String cknm, java.lang.String sclknm, boolean loadck, boolean loadsc, boolean keepsc) throws SpiceErrorException
This routine creates, optionally loads, and optionally deletes a type 3 C-kernel and an associated SCLK kernel.Below are comments from the header of tstck3_c:
This routine creates two files. 1) A C-kernel for the fictional objects with ID codes -9999, -10000, and -10001 2) A SCLK kernel to be associated with the C-kernel. The C-kernel contains a single segment for each of the fictional objects. These segments give continuous attitude over the time interval from 1980 JAN 1, 00:00:00.000 (ET) to 2011 SEP 9, 01:46:40.000 (ET) (a span of exactly 1 billion seconds). The frames of the objects are Object Frame ------- -------- -9999 Galactic -10000 FK5 -10001 J2000 All three objects rotate at a rate of 1 radian per 10 million seconds. The axis of rotation changes every 100 million seconds. At various epochs the axes of the objects are exactly aligned with their associated reference frame. Object Aligned with reference frame at epoch ------ ------------------------------------- -9999 Epoch of the J2000 frame -10000 Epoch of J2000 -10001 Epoch of J2000 At the moment when the frames are aligned. The are rotating around the direction (2, 1, 3) in their associated frames. The C-kernel contains 606 attitude instances. The attitude and angular velocity produced by the CK software should very nearly duplicate the results returned by the test routine tstatd_c. More specifically suppose we set up the arrays: ID[0] = -9999 ID[1] = -10000 ID[2] = -10001 FRAME[0] = "GALACTIC" FRAME[1] = "FK4" FRAME[2] = "J2000" Then the two methods of getting ROT and AV below should produce results that agree to nearly roundoff. Method 1. #include "SpiceUsr.h" . . . sce2c_c ( -9, et, &tick ); ckgpav_c ( id[i], tick, 0.0, frame[i], rot, av, out, &fnd ); Method 2. #include "SpiceUsr.h" #include "tutils_c.h" . . . tstatd_c ( et, rot, av );
The SCLK kernel produced by this method contains the data shown below:
SCLK_KERNEL_ID = ( @28-OCT-1994 ) SCLK_DATA_TYPE_9 = ( 1 ) SCLK01_TIME_SYSTEM_9 = ( 1 ) SCLK01_N_FIELDS_9 = ( 2 ) SCLK01_MODULI_9 = ( 1000000000 10000 ) SCLK01_OFFSETS_9 = ( 0 0 ) SCLK01_OUTPUT_DELIM_9 = ( 1 ) SCLK_PARTITION_START_9 = ( 0.0000000000000E+00 ) SCLK_PARTITION_END_9 = ( 1.00000000E+14 ) SCLK01_COEFFICIENTS_9 = ( 0.00000000E+00 @01-JAN-1980-00:00:00.000 1 )
- Parameters:
cknm
-keepsc
-sclknm
-loadsc
-loadck
-- Returns:
- Throws:
SpiceErrorException
-
tstlsk
public static void tstlsk() throws SpiceErrorException
This routine creates, loads, and deletes a leapseconds kernel.- Throws:
SpiceErrorException
-
tstpck
public static void tstpck(java.lang.String pck, boolean load, boolean keep) throws SpiceErrorException
Create and if appropriate load a test PCK kernel.- Parameters:
pck
-keep
-load
-- Throws:
SpiceErrorException
-
tstspk
public static int tstspk(java.lang.String file, boolean load) throws SpiceErrorException
This routine creates and optionally loads an SPK kernel.If the file is loaded, the file handle is returned.The following description is from the tutils_c version of this routine:
This routine creates an SPK file with ephemeris information for the following objects. SUN MERCURY MERCURY_BARYCENTER VENUS_BARYCENTER VENUS EARTH-MOON-BARYCENTER EARTH GOLDSTONE_TRACKING_STATION MADRID_TRACKING_STATION CANBERRA_TRACKING_STATION MOON SPACECRAFT_PHOENIX TRANQUILITY_BASE MARS_BARYCENTER MARS PHOBOS PHOBOS_BASECAMP DEIMOS JUPITER_BARYCENTER JUPITER IO EUROPA GANYMEDE ISTO SATURN_BARYCENTER SATURN TITAN URANUS_BARYCENTER URANUS OBERON ARIEL UMBRIEL TITANIA MIRANDA NEPTUNE_BARYCENTER NEPTUNE TRITON NEREID PLUTO_BARYCENTER PLUTO CHARON This routine creates a "TOY" solar system model for use in testing the SPICE ephemeris system. The data in this file are "good" for the epochs from 1980 JAN 1, 00:00:00.000 (ET) to 2011 SEP 9, 01:46:40.000 (ET) (a span of exactly 1 billion seconds). If the input file already exists, it is deleted prior to the creation of this file.
- Parameters:
file
-load
-- Returns:
- Throws:
SpiceErrorException
-
tsttxt
public static void tsttxt(java.lang.String namtxt, java.lang.String[] txt, boolean load, boolean keep) throws SpiceErrorException
Create and if appropriate load a test NAIF text kernel.- Parameters:
namtxt
-keep
-txt
-load
-- Throws:
SpiceErrorException
-
tsuccess
public static boolean tsuccess() throws SpiceErrorException
Indicate whether all test cases since set up via t_begin_ have passed.- Returns:
- Throws:
SpiceErrorException
-
zzellplt
public static void zzellplt(double a, double b, double c, int nlon, int nlat, int[] nv, double[] vout, int[] np, int[] pout) throws SpiceErrorException
Create a set of triangular plates covering a specified triaxial ellipsoid.- Parameters:
a
-pout
-b
-np
-c
-vout
-nlon
-nv
-nlat
-- Throws:
SpiceErrorException
-
zzpsball
public static void zzpsball(double r, int nlon, int nlat, int[] nv, double[] vout, int[] np, int[] pout) throws SpiceErrorException
Create a plate set representing a sphere centered at the origin.The radius of the sphere is specified by the caller.- Parameters:
r
-pout
-nlon
-np
-nlat
-vout
-nv
-- Throws:
SpiceErrorException
-
zzpsbox
public static void zzpsbox(double a, double b, double c, int[] nv, double[] vout, int[] np, int[] pout) throws SpiceErrorException
Create a plate set representing a box centered at the origin.The dimensions of the box are specified by the caller.- Parameters:
a
-pout
-b
-np
-c
-vout
-nv
-- Throws:
SpiceErrorException
-
zzpspoly
public static void zzpspoly(int n, double[] vrtces, int[] nv, double[] vout, int[] np, int[] pout) throws SpiceErrorException
Create a plate set with a polygonal boundary in the X-Y plane.The normal vectors of the plates point in the +Z direction.The input vertices are required to be ordered in the positive sense about the +Z axis.- Parameters:
n
-pout
-vrtces
-np
-nv
-vout
-- Throws:
SpiceErrorException
-
zzpsscal
public static void zzpsscal(double scale, double[] v1, int[] nv, double[] vout) throws SpiceErrorException
Scale a plate set: multiply the vertices of a plate set by a specified factor.The cardinality of v1 is assumed to be v1.length.- Parameters:
scale
-vout
-v1
-nv
-- Throws:
SpiceErrorException
-
zzpsun
public static void zzpsun(double[] v1, int[] p1, double[] v2, int[] p2, int[] nv, double[] vout, int[] np, int[] pout) throws SpiceErrorException
Compute the union of two plate sets.The cardinalities of the input arrays v1 p1 v2 p2 are assumed to be the lengths of the respective arrays.- Parameters:
v1
-pout
-p1
-np
-v2
-vout
-p2
-nv
-- Throws:
SpiceErrorException
-
zzpsxfrm
public static void zzpsxfrm(double[] v1, double[][] xform, int[] nv, double[] vout) throws SpiceErrorException
Apply a linear transformation to a plate set: left-multiply the vertices of a plate set by a specified 3x3 matrix.The cardinality of v1 is assumed to be v1.length.- Parameters:
v1
-vout
-xform
-nv
-- Throws:
SpiceErrorException
-
zzpsxlat
public static void zzpsxlat(double[] v1, double[] offset, int[] nv, double[] vout) throws SpiceErrorException
Apply a translation to a plate set: add a specified offset vector to the vertices of a plate set.The cardinality of v1 is assumed to be v1.length.- Parameters:
v1
-vout
-offset
-nv
-- Throws:
SpiceErrorException
-
zztboddsk
public static int zztboddsk(java.lang.String dsk, java.lang.String body, java.lang.String fixref, boolean load) throws SpiceErrorException
Generate a type 2 DSK for a specified body.The DSK surface approximates that of the reference ellipsoid of the body.- Parameters:
dsk
-load
-body
-fixref
-- Returns:
- Throws:
SpiceErrorException
-
-