Coordinate Systems
Coordinate Systems
Coordinate Systems
ROCOTLIB :
a Coordinate Transformation Library for Solar-Terrestrial studies
by Patrick ROBERT
- 2-
- 3-
CONTENTS
FOREWORD ............................................................................................................ 5 PART I: DEFINITIONS AND MATHEMATICAL FORMULAS .................................................... 7 I- DESCRIPTION OF COORDINATE SYSTEMS .................................................. 9
1) Geocentric Equatorial Inertial system (GEI) ............................................................9 2) Geographic system (GEO)....................................................................................10 3) Geomagnetic system (MAG).................................................................................10 4) Geocentric Solar Ecliptic system (GSE)................................................................11 5) Geocentric Solar Equatorial system (GSEQ) ........................................................11 6) Geocentric Solar Magnetospheric system (GSM) .................................................12 7) Solar Magnetic system (SM) .................................................................................12 8) Dipole Meridian system (DM) ................................................................................13 9) Vertical Dusk Horizontal system (VDH).................................................................13 10) Spin Reference system (SR)...............................................................................14 11) Spin Reference 2 system (SR2)..........................................................................14 12) Magnetic Field Aligned system (MFA).................................................................15
- 5-
FOREWORD
The ROCOTLIB library (ROberts COordinate Transformation LIBrary) is a set of software modules to perform transformations between the various coordinate systems used in geophysical and magnetospheric studies. Most of the frames of reference are geocentric, and are thus independent of the position of the point of observation ; nevertheless, some local frames are also considered. In addition to coordinate transformations, the library also provides a set of modules to perform format conversions and other operations associated with epoch, date and time. This library was originally developed in 1992 by P. Robert, CNRS/CRPE, with support from ESA within the framework of preparation of the CLUSTER mission; since then it has been regularly updated by the author. Original document is entitled:
Document de travail DT/CRPE/1231, CLUSTER Software Tools, Part 1 : Coordinate Transformation Library, Version 1.1 , by Patrick ROBERT, RPE/TID, CNRS/CNET/CRPE, Juillet 1993.
ROCOTLIB exists in both FORTRAN 77 and in FORTRAN 90, and of course can be run on any computer where these compilers are available. It will soon be available in the IDL and PV-Wave programming languages. Each transformation or module corresponds to a subroutine in FORTRAN, and to a procedure in IDL or PV-Wave. The package delivered to the user includes sources and makefiles of the library, examples of its use, a test program and the corresponding test output file to check the validity of the installation on the user's machine. The test programme has been developed and tested using the following FORTRAN compilers : SunOS 5.8 and SunOS 5, Sun WorkShop Compiler FORTRAN 77 V 5.0 The same systems, with FORTRAN 90 V2.0 LINUX /Intel i686 , g77 - GNU project FORTRAN Compiler (v0.5.24) DEC OSF/1, Digital FORTRAN 90 for Digital UNIX Alpha Systems V4.0
This document is the full documentation of the ROCOTLIB library and includes two parts: the first defines the various coordinate systems considered, and gives the mathematical formulas and matrices to pass from one system to another. The second part is the users manual for the FORTRAN library. It give the complete list of available modules, the role for each one, and a description of the input and output variables. The example programs and the test program are also commented. Documentation and code source are available on http://cdpp.cesr.fr. This library is a living product, and can be completed in the future by other transformations, or derived applications. Any comments are welcome.
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 5/111
- 6-
- 7-
- 8-
- 9-
Most of the coordinate systems described are geocentric, with any exceptions as the dipole meridian system and the VDH system, which are local coordinate systems and thus depend of the position of the point of observation.
Earth
equator
x
ecliptic to first point in Aries
The Z-axis is parallel to the rotation axis of the Earth. The X-axis is defined by the intersection of the equator plane and the ecliptic plane, and is pointing towards the first point of Aries (Sun position at the vernal equinox). one can define the right ascension and the declination as: right ascension =tan-1(Vy/Vx) with in [ 0,180] for Vy>0 in [180,360] for Vy<0 with in [-90,90]
declination
=sin-1(Vz/V)
- 10-
Earth
equator L
y
to Greenwich meridian (0 longitude)
The Z-axis is parallel to the rotation axis of the Earth. The X and Y axis are included in the equator plane. The X axis is pointing from the centre of the Earth to the Greenwich meridian (0 longitude). The GEO system is fixed with the rotating Earth. Longitude L and latitude are defined in this system in the same way as right ascension and declination in GEI system.
Earth
y x
L
The Z-axis is parallel to the magnetic dipole axis. If N is the North geographic pole, the N,Z and X vector are in the same plane. The Y-axis is defined as Y=-Z x N The MAG system is fixed with the rotating Earth. The magnetic longitude L and magnetic latitude are defined in this system in the same way as right ascension and declination in GEI system.
- 11-
dusk
x
Sun
ecliptic
The X-axis is pointing from the Earth towards the Sun. The X-axis and the Y-axis are include in the ecliptic plane. The Y-axis is pointing toward the dusk, opposing to the planetary motion. The Z-axis is parallel to the ecliptic pole. The GSE system has a yearly rotation with respect to the inertial system.
x y
Sun
ecliptic
Sun equator
The X-axis is pointing toward the Sun and include in the ecliptic plane. The Y-axis is parallel to the Sun's equatorial plane (inclined to the ecliptic) X-axis is not necessarily in the Sun's equatorial plane; Z-axis is not necessarily be parallel to the Sun's axis of rotation (which is perpendicular to Y, and thus in the X-Z plane); Z-axis is chosen to be in the same sense as the ecliptic pole, i.e. northwards.
- 12-
z
North magnetic pole
dusk
Earth
x
Sun The X-axis is pointing from the Earth towards the Sun. The X-Z plane contains the dipole axis. The Y-axis is perpendicular to the Earth's magnetic dipole, towards the dusk and include in the magnetic equator plane. The positive Z-axis is chosen to be in the same sense as the northern magnetic pole; the dipole tilt angle i is positive when the north magnetic pole is tilted towards the Sun. In addition to a yearly period due to the motion of the Earth about the Sun, the GSM system rocks about the Solar direction with a 24 h period.
z
Sun
dusk
Earth
x
The Z-axis is parallel to the North magnetic dipole. The X-Z plane contains the direction of the Sun. The Y-axis is perpendicular to the Earth-Sun line toward dusk. The SM system rotates with both a yearly and a daily period with respect to the inertial system.
- 13-
z
R
po in t of observ ation
x
o utw ard s in dip ole m ag ne tic m erid ia n N orth m ag n etic d ipo le a xis
y
E ast
E arth
The Z-axis is parallel to the North magnetic dipole axis. The X-Z plane contains the direction R of the point of observation, from the Earth, and is a dipole magnetic meridian plane. The Y-axis is perpendicular to the R vector, eastwards. This system is a local coordinate system, which is dependent of the position of the point of observation from the Earth.
D
East
Earth
The V-axis is the outwards local vertical, to the point of observation. The H-axis is parallel to the horizontal local plane, positive to the North. The V-H plane is a geographic meridian plane. The D-axis is azimuthal, eastwards. As DM system, this system is a local coordinate system, which is dependent of the position of the point of observation from the Earth.
- 14-
Sun Spacecraft
y x
(t)
This is a spinning local system close to the measurement antenna of a spacecraft. The Z-axis is the spin axis of the spacecraft. The X-axis and Y-axis are perpendicular to the spin axis, and rotate at the spin frequency of the spacecraft. The definition of the SR system need the knowledge of the spin axis in a fixed frame of reference as the GEI inertial system, and the value of the spin phase at a given time.
z
Sun
Spacecraft
x
This is a fixed system usefull for the spacecraft data processing. It is also called SCS, as Spacecraft-Sun system, or DS system (Despun Satellite). The Z-axis is the spin axis of the spacecraft. The X-Z plane contains the direction of the Sun. The X-axis is towards the day side. The Y-axis is perpendicular to the spacecraft-Sun line. The SR2 system rotates with the same period than the orbital period of the spacecraft with respect to the inertial system, while the declination varies continously.
- 15-
z
Sun
= Bo DC Magnetic Field
Spacecraft
x
This is a system usefull for physic, but the meaning of the Bo DC magnetic filed must be knew, as its time variation (see ref. [3] ). The Z-axis is the DC magnetic field vector. The X-Z plane contains the direction of the Sun. The X-axis is towards the day side. The Y-axis is perpendicular to the spacecraft-Sun line. The MFA system move continously with the time variation of the DC magnetic field.
[3] CLUSTER DATA PROCESSING, Transformation of a STAFF waveform into a Magnetic Field Aligned coordinate system, by Patrick Robert and C. de Villedary, Rapport interne CNRS-UVSQ/CETP n RICETP/6/2000, Octobre 2000.
- 16-
1) General remarks
Among all coordinates systems described in section I, we have single out two particular systems more frequently encountered: the Geographic system (GEO) and the Geocentric Equatorial Inertial system (GEI). From these two system, we have computed all transformations to directly convert theses coordinates into any else other. Furthermore, other direct "circular" transformations between the other system are also given, as explained on the schematic diagram below.
DM MAG
17 12 13 11
SM
VDH
18
GEO
10 14 4
GSM
5
GEI
6 7 16
15
SR GSE
21 8 19
GSQ
SR2
20
MFA
- 17-
3) List of transformations
All different coordinate transformations are listed below; number correspond to number of section III, and are mentioned in the above schematic diagram. name
2) 3) 4) 5) 6) 7) 8) 9) geigeo geogei geimag maggei geisma smagei geigsm gsmgei geigse gsegei geigsq gsqgei gsegsq gsqgse gsegsm gsmgse
input coordinates
Geocentric Equatorial Inertial (GEI) Geographical (GEO) Geocentric Equatorial Inertial (GEI) Magnetic dipole (MAG) Geocentric Equatorial Inertial (GEI) Solar Magnetic (SM) Geocentric Equatorial Inertial (GEI) Geocentric Solar Magnetospheric (GSM) Geocentric Equatorial Inertial (GEI) Geocentric Solar Ecliptic (GSE) Geocentric Equatorial Inertial (GEI) Geocentric Solar Equatorial (GSQ) Geocentric Solar Ecliptic (GSE) Geocentric Solar Equatorial (GSQ) Geocentric Solar Ecliptic (GSE) Geocentric Solar Magnetospheric (GSM) Geocentric Solar Magnetospheric (GSM) Solar Magnetic (SM) Solar Magnetic (SM) Magnetic dipole (MAG) Geographical (GEO) Magnetic dipole (MAG) Geographical (GEO) Solar Magnetic (SM) Geographical (GEO) Geocentric Solar Magnetospheric (GSM) Geographical (GEO) Geocentric Solar Ecliptic (GSE) Geographical (GEO) Geocentric Solar Equatorial (GSQ) Geographical (GEO) Dipole Meridian (DM) Geographical (GEO) Vertical Dusk Horizontal (VDH) Geocentric Solar Ecliptic (GSE) Spin Reference 2 (SR2) Spin Reference 2 (SR2) Spin Reference (SR) Spin Reference 2 (SR2)
output coordinates
Geographical (GEO) Geocentric Equatorial Inertial (GEI) Magnetic dipole (MAG) Geocentric Equatorial Inertial (GEI) Solar Magnetic (SM) Geocentric Equatorial Inertial (GEI) Geocentric Solar Magnetospheric (GSM) Geocentric Equatorial Inertial (GEI) Geocentric Solar Ecliptic (GSE) Geocentric Equatorial Inertial (GEI) Geocentric Solar Equatorial (GSQ) Geocentric Equatorial Inertial (GEI) Geocentric Solar Equatorial (GSQ) Geocentric Solar Ecliptic (GSE) Geocentric Solar Magnetospheric (GSM) Geocentric Solar Ecliptic (GSE) Solar Magnetic (SM) Geocentric Solar Magnetospheric (GSM) Magnetic dipole (MAG) Solar Magnetic (SM) Magnetic dipole (MAG) Geographical (GEO) Solar Magnetic (SM) Geographical (GEO) Geocentric Solar Magnetospheric (GSM) Geographical (GEO) Geocentric Solar Ecliptic (GSE) Geographical (GEO) Geocentric Solar Equatorial (GSQ) Geographical (GEO) Dipole Meridian (DM) Geographical (GEO) Vertical Dusk Horizontal (VDH) Geographical (GEO) Spin Reference 2 (SR2) Geocentric Solar Ecliptic (GSE) Magnetic Field Aligned Spin Reference 2 (SR2) Spin Reference (SR)
10) gsmsma smagsm 11) smamag magsma 12) geomag maggeo 13) geosma smageo 14) geogsm gsmgeo 15) geogse gsegeo 16) geogsq gsqgeo 17) geodme dmegeo 18) geovdh vdhgeo 19) gsesr2 sr2gse 20) sr2mfa 21) sresr2 sr2sre
- 18-
any vector V can be expressed in system B as: V1(B)= XBV= X1(A)V1(A) + X2(A)V2(A) + X3(A)V3(A) V2(B)= YBV= Y1(A)V1(A) + Y2(A)V2(A) + Y3(A)V3(A) V3(B)= ZBV= Z1(A)V1(A) + Z2(A)V2(A) + Z3(A)V3(A) Thus the transform matrix of any vector V is: V1 V2 = V3 (B) X1 Y1 Z1 X2 X3 V1 Y2 Y3 V2 Z2 Z3 V3(A)
All transformation matrix have the following properties, useful for error checking: 1) Each row and column is a unit vector; 2) The dot products of any two rows or any two columns is zero; 3) The cross product of any two rows or columns equals the third row or column or its negative (Row 1 cross row 2 equals row3; row 2 cross row 1 equal minus row3).
- 19-
Earth
Earth
y
equator
y
L
equator
x
ecliptic to first point in Aries
GEO and GEI system have their Z-axis in common, so the only difference is a rotation around Z-axis of angle, thus the matrix transformation is: V1 cos = sin V2 V3 (GEI) 0 sin cos 0 0 V1 0 V2 1 V3 (GEO)
and the inverse transformation is obviously: V1 cos = sin V2 V3 (GEO) 0 sin cos 0 0 V1 0 V2 1 V3(GEI)
The angle is the angle between the Greenwich meridian and the first point in Aries, measured Eastward, in the Earth's equator, from the first point in Aries. is called Greenwich Mean Sideral Time; GMST is a function of the time of the day and the time of year, since the sideral day (duration of a day relative to inertial space) is less than 24h. Practically, GMST is computed from csundir subroutine.
- 20-
y
Earth
ecliptic
equator
x
to first point in Aries
y x
L
Transformation from GEI to MAG system requires a knowledge of the dipole direction in GEI system, noted as M. The geographic coordinates of the dipole axis can be known, for instance for IGRF epoch 1965, as 11.435 colatitude and -69.761 east longitude, thus:
Y= N x M /|N x M|
Normalizing factors occurs because N and M are not necessarily perpendicular; since N has two components equal to zero, cross product is easy and we found: - M2 2 2 Y = M1 .1/ M1 + M2 0
1/ 2
X= Y x M
so: M1M3 2 2 X= M2M3 .1/ M1 + M2 -(M12 + M22)
1/ 2
All coordinates of X-Y-Z axis of MAG system in GEI coordinates being known, the transform matrix of any vector V is: V1 X1 = Y1 V2 V3 (MAG) M1 X2 X3 V1 Y2 Y3 V2 M2 M3 V3(GEI)
Similarly the transformation from system MAG to GEI is: V1 X1 = X2 V2 V3 (GEI) X3 Y1 M1 V1 Y2 M2 V2 Y3 M3 V3(MAG)
By replacing corresponding values, with Q=(M12 + M22)1/2 , we can obtain the fully expanded expression:
(D1D3cos - D2D3sin )/Q V1 = -(D2cos + D1sin )/Q V2 V3 (MAG) D1cos - D2sin V1 (D1D3cos - D2D3sin )/Q = (D1D3sin + D2D3cos )/Q V2 V3 -Q (GEI) (D1D3sin + D2D3cos )/Q (-D2sin + D1cos )/Q D1sin + D2cos -(D2cos + D1sin )/Q (-D2sin + D1cos )/Q 0 - Q V1 0 V2 D3 V3(GEI) D1cos - D2sin V1 D1sin + D2cos V2 V3 D3 (MAG)
- 22-
4) GEI to SM transformation
Geocentric Equatorial Inertial Solar Magnetic
Sun
y
dusk
equator
x
ecliptic to first point in Aries
Earth
Transformation from GEI system to SM system requires a knowledge of Sun direction and magnetic dipole direction in GEI system. In GEI system, the direction of the Sun is computed from csundir subroutine:
Y= M x S / |M x S|
(normalizing factors occurs because M and S are not necessarily perpendicular)
X= Y x M
All coordinates of X-Y-Z axis of SM system in GEI coordinates being known, the transform matrix of any vector V is: V1 X1 X2 X3 V1 = Y1 Y2 Y3 V2 V2 V3 (SM) Z1 Z2 Z3 V3(GEI)
with respectively: Z1 M1 Z2 = M2 Z3 M3 Y1 M2S3 - M3S2 Y2 = M3S1 - M1S3 .1/Q Y3 M1S2 - M2S1 X1 Y2M3 - Y3M2 X2 = Y3M1 - Y1M3 X3 Y1M2 - Y2M1 M1 D1cos M2 = D1sin M3 - D2sin + D2cos D3
- 24-
z
North magnetic pole
Earth
ecliptic
y x
Sun
dusk
Earth
equator
x
to first point in Aries
Transformation from GEI system to GSM system requires a knowledge of Sun direction and magnetic dipole direction in GEI system. In GEI system, the direction of X-axis of GSM system is the direction of the Sun computed from csundir subroutine: X=S=(S1, S2, S3) The geographic coordinates of the dipole axis can be known, for instance for IGRF epoch 1965, as 11.435 colatitude and -69.761 east longitude, thus:
Y= M x S / |M x S|
(normalizing factors occurs because M and S are not necessarily perpendicular)
- 25and
Z= S x Y
All coordinates of X-Y-Z axis of GSM system in GEI coordinates being known, the transform matrix of any vector V is: V1 S1 S2 = Y1 Y2 V2 V3 (GSM) Z1 Z2 S3 V1 Y3 V2 Z3 V3 GEI
Similarly the transformation from system GSM to GEI is: V1 S1 = S2 V2 V3 (GEI) S3 Z1 V1 Z2 V2 Z3 V3GSM
Y1 Y2 Y3
with respectively: Y1 M2S3 - M3S2 Y2 = M3S1 - M1S3 .1/Q Y3 M1S2- M2S1 Z1 S2Y3 - S3Y2 Z2 = S3Y1 - S1Y3 Z3 S1Y2 - S2Y1 where M1 D1cos - D2sin M2 = D1sin + D2cos M3 D3
- 26-
x
Earth
Sun
equator
ecliptic
x
to first point in Aries
ecliptic
In GEI system, the direction of X-axis of GSE system is the direction S of the SUN , computed from csundir subroutine: X=S=(S1, S2, S3) The direction of the Z-axis of GSE is the direction of ecliptic pole, which is a known constant value: Z=E=(E1, E2, E3) = (0, -0.398, 0.917) The third axis, Y, is deduced from Y= Z x X = E x S, thus: E2S3 - E3S2 Y = E S = E3S1 - E1S3 E1S2- E2S1 Thus the transform matrix of any vector V is: V1 S1 = Y1 V2 V3 (GSE) E1 S3 V1 Y3 V2 E3 V3(GEI)
S2 Y2 E2
Similarly the transformation from system GSE to GEI is: V1 S1 = S2 V2 V3 (GEI) S3 E1 V1 E2 V2 E3 V3(GSE)
Y1 Y2 Y3
- 27-
x Earth
Sun
equator
ecliptic
x
ecliptic to first point in Aries
Sun equator
In GEI system, the direction of X-axis of GSEQ system is the direction of the SUN computed from csundir subroutine: X=S=(S1, S2, S3) The direction of the rotation axis of the SUN in GEI system is a known constant value:
Y= (R x S)/|R x S| and Z= S x Y
Thus the transform matrix of any vector V is: V1 S1 = Y1 V2 V3 (GSEQ) Z1 S3 V1 Y3 V2 Z3 V3(GEI)
S2 Y2 Z2
Similarly the transformation from system GSEQ to GEI is: V1 S1 = S2 V2 V3 (GEI) S3 Z1 V1 Z2 V2 Z3 V3(GSEQ)
Y1 Y2 Y3
- 28-
Earth
x y
Sun
x
Sun
ecliptic
ecliptic
Sun equator
The only difference between GSE and GSEQ systems is a rotation about the common Xaxis, to have the Y-GSEQ axis parallel to the Sun equator plane. So, if is the rotation angle, the transformation matrix of any vector V is: V1 1 = 0 V2 V3 (GSEQ) 0 V1 V2 V3 (GSE)
0 cos sin
0 - sin cos
0 cos - sin
0 sin cos
computation of angle:
To compute , we use the following known vectors in GEI system: 1) the direction S of the SUN , computed from csundir subroutine:
- 293) the direction of the rotation axis of the Sun, which is also a constant value: R= (R1, R2, R3) = (0.122, -0.424, 0.899) To compute sin = |YGSE x YGSEQ| we use the following properties: YGSE = ZGSE x XGSE = E x S and since R is in the X-Z plane in the GSEQ system: YGSEQ = (R x S)/|R x S| so we have sin = | ( E x S) x ( R x S ) | / |R x S| since ( A x B) x ( C x D ) = (A x BD)C - (A x BC)D and ( A x B) C = (AB) x C thus ( E x S) x ( R x S ) = (E x SS)R - (E x SR)S = (R x ES)S and finally, as S is a unit vector:
sin = (R x E)S / |R x S|
sin = (-0.031, -0.112, -0.049)S / |(0.122, -0.424, 0.899) x S| Since the Sun's spin axis is inclined 7.25 to the ecliptic, changes from -7.25 to 7.25 each year, from approximately December 5 to June 5. The Sun's spin axis is directed most towards the Earth on approximately September 5 at which time the Earth reaches its northern most heliographic latitude. At this time =0.
- 30-
z
North magnetic pole
Earth
Sun
x
Sun
ecliptic
GSE and GSM systems have their X-axis in common, so the only difference is a rotation around the X-axis of the angle , thus the matrix transformation is: V1 1 = 0 V2 V3 (GSM) 0 0 V1 sin V2 cos V3(GSE)
0 cos - sin
0 cos sin
Nevertheless the angle cannot be obtained from a simple equation. To compute the rotation terms of transformation matrix, we use the GSE to GEI and the GEI to GSM previous matrix transformations, given in III-6 and III-5. These transformations are noted (see III-6 and III-5): V1 S1 = y1 V2 V3 (GSE) E1 S2 y2 E2 S3 V1 y3 V2 E3 V3(GEI) with y = (E x S) in GEI system
- 31and: V1 = V2 V3 (GEI) S1 S2 S3 Y1 Y2 Y3 Z1 V1 Z2 V2 Z3 V3(GSM) with Y = (M x S)/|(M x S)| in GEI system and Z = (S x Y) in GEI system we can write the GSM to GSE transformation as: V1 S1 = y1 V2 V3 (GSE) E1 which give V1 SS = y S V2 V3 (GSE) E S S Y yY EY S Z V1 y Z V2 E Z V3(GSM) S2 y2 E2 S3 S1 y3 S2 E3 S3 Y1 Y2 Y3 Z1 V1 Z2 V2 Z3 V3(GSM)
which becomes, since S and Y are unit vectors perpendicular between us, as S and Z: V1 1 = 0 V2 V3 (GSE) 0 0 yY EY 0 V1 y Z V2 E Z V3(GSM)
Computation of cos We have to equalize yY and EZ terms as cos . Taking we compute since
yY = EZ = cos
- 32by replacing the corresponding values, we set: cos =( E x S)( M x S)/|( M x S)| since we found and finally cos = E M)/|( M x S)| A( B x C)=(A x B)C cos = -( E x S) x S)/|( M x S)|
Computation of sin Similarly one has to ensure that the EY and -yZ terms are equal. Taking since we have and find:
yZ=( E x S)( S x Y )
A ( B x C)=(A x B)C
- 33Similarly computation of sin is made as: sin = EY thus sin = E( M x S) )/|( M x S)|
- 34-
Sun
dusk
dusk
Earth
y x
Earth
x
Sun
The GSM and SM system have the Y-axis in common, then the transformation matrix is a simple rotation of angle, which is named the dipole tilt angle. Thus the transformation matrix of any vector V is: V1 cos = 0 V2 V3 sin (SM) - sin 0 cos V1 V2 V3 (GSM)
0 1 0
and the inverse transformation is obviously: V1 cos = 0 V2 V3 (GSM) - sin sin 0 cos V1 V2 V3 (SM)
0 1 0
can be obtained from sin =SD, where S is the direction of the sun and D the dipole direction, both in GEO system for instance.
S can be computed from GEI to GEO transformation given in III-2; then we have: S=(S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3)
where S is the direction of the Sun in GEI system, computed from csundir subroutine, such as the Greenwich Mean Sideral Time .
- 35-
- 36-
z
Sun
dusk
Earth
Earth
y
x
L
The SM and MAG system have the Z-axis in common, then the transformation matrix is a simple rotation of angle, thus the transformation matrix of any vector V is: V1 cos = - sin V2 V3 (MAG) 0 sin cos 0 0 V1 0 V2 1 V3(SM)
and the inverse transformation is obviously: V1 cos = sin V2 V3 (SM) 0 - sin cos 0 0 V1 0 V2 1 V3(MAG)
Nevertheless the angle is not derivable from a simple equation. To compute the rotation terms of transformation matrix, we use the MAG to GEO and the GEO to SM matrix transformations, given in III-12 and III-13. The first transformation is noted (see III-12): V1 X1 = Y1 V2 V3 (MAG) D1 X2 Y2 D2 X3 V1 Y3 V2 D3 V3(GEO) with and
- 37-
N and D vector are respectively the North geographic pole and the magnetic dipole in
geographic system. Practically, geographic dipole direction D is computed for a given time and year from cdipdir subroutine; value for 1965.0 is:
S is the direction of the sun in GEO system, which can be computed from GEI to GEO
transformation given in III-2, then we have:
XD =( Y x D) D = Y(D x D) =0 YD =( N x D) D/|N x D| = N(D x D)/|N x D| =0 Dx = D(y x D) = -D(D x y) = -( D x D)y =0 Dy = D(D x S)/|D x S| = ( D x D)S/|D x S| =0 DD =1
then we have the following matrix: V1 X x = Y x V2 V3 (MAG) 0 Computation of cos We have to equalize Xx and Yy terms as cos . Taking Xy Yy 0 0 V1 0 V2 1 V3(SM)
y=( D x S)/| D x S|
then we have: cos = Yy = Y( D x S)/| D x S|= (Y x D) S/| D x S| The (Y x D) vector can be expanded as:
[(D1D3S1
+ D2D3S2 -(D12+D22)S3)]/Q
Q=(D12+D22)1/2.[(D2S3-D3S2)2 + (D3S1-D1S3)2 + D1S2-D2S1)2]1/2 (S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3)
- 39Computation of sin We have to equalize Xy and -Yx terms as sin . Taking and yet we have well:
Xy = -Yx = sin
sin is then computed from sin = ( Y x D)y from above we have:
y=( D x S)/| D x S|
we deduce: sin = with Q such as above.
(D2S1
- D1S2)/Q
- 40-
y
L equator
Earth
y
to Greenwich meridian (0 longitude)
In geomagnetic coordinates, Z-axis is parallel to the magnetic dipole axis D, and the Y-axis is perpendicular to the North geographic pole N, then we have in geographic system:
Z = D Y = (N x D)/|N x D| and X = Y x D
The geographic coordinates of the dipole axis can be known, for instance for IGRF epoch 1965, as 11.435 colatitude and -69.761 east longitude. Practically, geographic dipole direction D is computed for a given time and year from cdipdir subroutine; value for 1965.0 is:
Similarly the transformation from system MAG to GEO is: V1 X1 = X2 V2 V3 (GEO) X3 Y1 Y2 Y3 D1 V1 D2 V2 D3 V3(MAG)
- 41-
z
Sun
Earth
y
L equator
dusk
Earth
In GEO system, the direction of the Z-axis of SM system is the dipole direction D. The geographic coordinates of the dipole axis can be known, for instance for IGRF epoch 1965, as 11.435 colatitude and -69.761 east longitude, thus:
y=( D x S)/| D x S|
where S is the direction of the sun in GEO system, which can be computed from GEI to GEO transformation given in III-2, then we have:
x=( y x D)
and the GEO to SM transformation is given by: V1 x1 = y1 V2 V3 (SM) D1 x3 V1 y3 V2 D3 V3(GEO)
x2 y2 D2
y1 y2 y3
Q=[(D2S3-D3S2)2 + (D3S1-D1S3)2 + (D1S2-D2S1)2]1/2 S=(S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3)
- 43-
z
North magnetic pole
Earth
y
L equator
dusk
Earth
x
to Greenwich meridian (0 longitude)
Sun
In GEO system, the direction of the X-axis of GSM system is the direction of the sun S, which can be computed from GEI to GEO transformation given in III-2; then we have:
y=( D x S)/| D x S|
where D is the dipole direction; the geographic coordinates of the dipole axis can be known, for instance for IGRF epoch 1965, as 11.435 colatitude and -69.761 east longitude, thus:
z= S x y
and the GEO to GSM transformation is given by: V1 x1 = y1 V2 V3 (GSM) z1 x3 V1 y3 V2 z3 V3(GEO)
x2 y2 z2
y1 y2 y3
with respectively: x1 S 1 x2 = S 2 x3 S 3 y1 D2S 3 - D3S 2 y2 = D3S 1 - D1S 3 .1/Q y3 D1 S 2 - D2S 1 z1 x2y3 - x3y2 z2 = x3y1 - x1y3 z3 x1y2 - x2y1
Q=[(D2S3-D3S2)2 + (D3S1-D1S3)2 + (D1S2-D2S1)2]1/2 S=(S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3)
- 45-
dusk
Sun
y
L equator ecliptic
In GEO system, the direction of the X-axis of GSE system is the direction of the sun S, which can be computed from GEI to GEO transformation given in III-2; then we have:
Y= E x S
and the GEO to GSE transformation is given by: V1 S1 = Y1 V2 V3 (GSE) E 1 S 3 V1 Y3 V2 E 3 V3 (GEO)
S2 Y2 E2
Y1 Y2 Y3
with respectively: Y1 E 2 S 3 - E 3 S 2 Y2 = E 3 S 1 - E 1 S 3 Y3 E 1 S 2 - E 2 S 1
S=(S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3) E=(E1, E2, E3) =((E1cos + E2sin) , (-E1sin + E2cos) , E3) E=(E1, E2, E3) = (0, -0.398, 0.917)
- 47-
z
Earth Earth
y
L equator ecliptic
y
Sun
Sun equator
In GEO system, the direction of the X-axis of GSEQ system is the direction of the sun which can be computed from GEI to GEO transformation given in III-2; then we have:
S,
y= R x S/| R x S|
normalizing factors in cross product occurs because R and S are not necessarily perpendicular. The third axis Z is computed from:
z= S x y
and the GEO to GSEQ transformation is given by: V1 x1 = y1 V2 V3 (GSEQ) z1 x3 V1 y3 V2 z3 V3(GEO)
x2 y2 z2
y1 y2 y3
Q=[(R2S3-R3S2)2 + (R3S1-R1S3)2 + (R1S2-R2S1)2]1/2 S=(S1, S2, S3) =((S1cos + S2sin) , (-S1sin + S2cos) , S3) R=(R1, R2, R3) =((R1cos + R2sin) , (-R1sin + R2cos) , R3) R=(R1, R2, R3) = (0.122, -0.424, 0.899)
- 49-
z //
R
Earth
point of observation
y
equator L
x
outwards in dipole magnetic meridian North magnetic dipole axis
y
to Greenwich meridian (0 longitude) East
Earth
Dipole meridian system is a local coordinate system, and varies with the position of the point of observation relative to the centre of the Earth; this positions is noted in GEO system as:
Y= D x R / |D x R|
normalizing factors occurs because D and R are not necessarily perpendicular and because R is not a unit vector. The third axis X is deduced from:
X= Y x D
All coordinates of X-Y-Z axis of DM system in GEO coordinates being known, the transform matrix of any vector V is: V1 X1 = Y1 V2 V3 (DM) D1 X3 V1 Y3 V2 D3 V3(GEO)
X2 Y2 D2
Y1 Y2 Y3
with respectively: X1 Y2D3 - Y3D2 X2 = Y3D1 - Y1D3 X3 Y1D2 - Y2D1 Y1 D2R3 - D3R2 Y2 = D3R1 - D1R3 .1/Q Y3 D1R2 - D2R1
- 51-
V Earth
y
L equator
D
East
Earth
VDH system is a local coordinate system, and varies with the position of the point of observation relative to the centre of the Earth; this positions is noted in GEO system as:
D= ZE x R / |ZE x R|
which give: - R2 2 2 1/2 D = R1 .1/(R1 + R2 ) 0 The third axis H is deduced from:
H= V x D
which give: - R1R3 - R2R3 .1/Q H= 2 2 R1 + R2 with
- 52All coordinates of X-Y-Z axis of VDH system in GEO coordinates being known, the transform matrix of any vector V is: V1 V1 = D1 V2 V3 (VDH) H1 V3 V1 D3 V2 H3 V3(GEO)
V2 D2 H2
Similarly the transformation from system VDH to GEO is: V1 V1 = V2 V2 V3 (GEO) V3 H1 V1 H2 V2 H3 V3(VDH)
D1 D2 D3
- 53-
Spacecraft x
y
G
(to the Sun)
S
(to the dusk)
GSE
where (X1, X2, X3) are the components of the X axis of the SR2 system expressed in GSE coordinates, and in the same way for Y and Z axis. In SR2 system, Z is the rotation axis of the spacecraft, and must be known in GSE system from auxiliary data of the Spacecraft. We can write it as: Z1 Rx Z = Z2 = R = Ry Z3 Rz GSE The components of the Y axis can be found by the relation Y = (R X S) / | R X S | which is very simple since the direction of the Sun S is the X axis of GSE system, expressed as (1,0,0), and we deduce: 0 1 Y= Rz 2 2 Ry + Rz Ry
GSE
Finally we complete the system by computing X = Y X Z, so: Ry 2 + Rz 2 RxRy X=a with a = RxRz GSE 1 Ry + Rz
2 2
- 54Thus, the transformation of GSE coordinate into SR2 coordinates can be written as: a(Ry 2 + Rz 2 ) X 0 = Y Z Rx SR 2 a(RxRy ) aRz Ry aRxRz aRy Rz X Y Z
GSE
where R vector is the spin axis (or Rotation axis) expressed in GSE coordinate system, and extracted from auxiliary SPD data. Note that, if useful, the reverse transform is simply: a(Ry 2 + Rz 2 ) X Y = aRxRy Z GSE aRxRz 0 aRz aRy Rx Ry Rz X Y Z
SR 2
- 55-
= Bo DC Magnetic Field
Bo
Spacecraft
y x
The Magnetic Field Aligned system is defined as a system where Z is along the DC magnetic field, noted as Bo, and X in the plane containing the DC magnetic field vector and the direction of the Sun. A problem of definition can appear when the DC-MF is aligned with the direction of the Sun, which is not an unlikely case. When this situation arrives, the direction of the normal to the ecliptic plane could be used instead of the direction of the Sun, but is is not still the case in this version. To obtain the alignment of Z with Bo, we apply two rotations. The first one, in the x-y plane, align the x axis with the perpendicular component of Bo in the x-y plane:
y y First rotation
X ' cos Y ' = sin Z' 0 sin cos 0 0 0 1 X Y Z SR 2
x= B
x
A second rotation, in the x-z plane, leads the new z axis to be aligned with Bo:
z
Second rotation
z MAG =Bo
x= B
x MAG
- 56and the transformation from SR2 to a new MAG is given by: cos X = 0 Y Z MAG sin 0 sin 1 0 0 cos cos sin 0 sin cos 0 0 0 1 X Y Z SR 2
At this level, the Z axis of new MAG system is aligned with the Bo DC local magnetic field, but the MAG system is still not the MFA system, because the MFA system is defined as having the X in the plane containing the DC magnetic field vector and the direction of the Sun. So we must apply a third rotation to pass from the MAG system to the MFA system. This third rotation in the x-y plane depends of the direction of the Sun in the MAG system, defined by its spherical angles and : Z MAG =Bo
Sun
YMAG
and we pass from the MAG system to the MFA system by a rotation of angle around the Z axis:
XMFA = S
MAG
So, the total transformation from SR2 system to MFA system is: cos X Y = sin Z MFA 0 sin cos 0 0 0 1 cos 0 sin 0 sin cos 1 0 sin 0 cos 0 sin cos 0 0 0 1 X Y Z SR 2
and are respectively the polar and azimuthal angles of the Bo DC magnetic field vector in SR2 system, which has been computed in section 4. If we note Bx, By and Bz the components of Bo in SR2 system, we have:
Bx 2 + By 2 Bz , cos = Bo Bo By Bx + By
2 2
sin =
sin =
, cos =
Bx Bx + By 2
2
is the azimuthal angle of the direction of the Sun in MAG system . If we note SxM, SyM, SzM the Cartesian components of this direction in MAG system, we have:
sin = Sy M SxM + Sy M
2 2
, cos =
SxM Sx M + Sy M
2 2
Computation of SxM, SyM, SzM: To compute the components of the direction of the Sun in MAG system, we use the transformation from SR2 to MAG, computed in the beginning of this annexe, as: cos Sx M = 0 Sy M Sz M MAG sin 0 sin 1 0 0 cos cos sin 0 sin cos 0 0 0 1 Sx Sy Sz SR 2
where Sx, Sy, Sz are the components of the direction of the Sun in SR2 system, which leads to: Sx cos cos Sz sin Sx M = Sx sin Sy M Sz M MAG Sx sin cos Sz cos Sx, Sy, Sz are deduced by the transformation of GSE to SR2 given in annexe 1, thus: a( Ry 2 + Rz 2 ) a( RxRy) aRxRz 1 Sx Sy = 0 aRz aRy 0 with a = 0 Sz Rx Ry Rz GSE SR 2
1 Ry 2 + Rz 2
- 58R vector being the Rotation axis expressed in GSE coordinate. Note that in GSE, the direction of the Sun is simply (1,0,0), thus the direction of the Sun in SR2 system is: Ry 2 + Rz 2 Sx Sy = 0 Sz Rx SR 2 which leads to the result: Ry 2 + Rz 2 cos cos Rx sin Sx M 2 2 = Ry + Rz sin Sy M Sz M MAG Ry 2 + Rz 2 sin cos Rx cos
- 59-
Spacecraft
y x
(t)
y x
By the way of the Sun Reference Pulse, we know the spin phase (to) at a given time to. The spin phase (to) is the azimutal angle of the direction of the Sun in the SR system, for the knowed time to. At any time t, knowing the spin frequency fs, the (t) angle can be computed by by: (t)= (to) 2 fs (t-to) The spacecraft is supposed rotating in the direct x to y sens. If it rotates in the other sens, the signe of fs must be changed. Note that at each time multiple of t= to + k/fs (k being any signed integer) , (t) has the same value as (to). The only one difference between the SR system and the SR2 system is a rotation of the angle around the spin axis, so we have: cos X Y = sin Z SR2 0 and the inverse transformation is obviously: X cos Y = sin Z 0 SR sin cos 0 0 X 0 Y 1 Z SR2 sin cos 0 0 X 0 Y 1 Z SR
- 60-
1) General remarks
Most space missions deliver or use for their processing data date and time in various format, such as decimal Julian day, month-day in the month, year, decimal hours, hour-min-sec, and so on. In order to easily manipulate all theses quantities, and to get transformations between else, special calendar conversions, described below, has been added to ROCOTLIB library.
compute day of the year from given date (cdoyear) This conversion compute the day of the year, equal to 1 for January 1, for a date given as month, day in the month, and year. For instance, the day of the year of October 17, 1990 is 290. This conversion counts the number of the day in a month, taking into account leap year since February has not a constant number of days (using coleapy).
compute date from given day of the year and year (cdatdoy) This is the inverse conversion of cdoyear, since one compute the corresponding month and day in the month for a given day of the year, and a given year. Year is necessary to know if the year is or not a leap year (using coleapy).
compute Julian day 1950 from given date (cjd1950) From a given date as month, day, year, this conversion compute the Julian day , i.e. day number from January 1, 1950, with Julian day equal to 1 for January 1, 1950 (use cdoyear and coleapy conversions).
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 60/111
- 61-
compute Julian day 2000 from given date (cjd2000) From a given date as month, day, year, this conversion compute the Julian day , i.e. day number from January 1, 2000, with Julian day equal to 1 for January 1, 2000 (use cdoyear and coleapy conversions).
compute date from given 1950 Julian day (cdatj50) This is the inverse conversion of cjd1950, since one compute for a given Julian day the corresponding date as month, day in the month and year (use coleapy and cdatdoy conversions).
compute date from given 2000 Julian day (cdatj00) This is the inverse conversion of cjd2000, since one compute for a given Julian day the corresponding date as month, day in the month and year (use coleapy and cdatdoy conversions).
compute decimal hour from given hour, minute and second (chouday) This conversion makes the operation hour + minute/60. + second/3600.
compute hour, minute and second from given decimal hour (ctimhou) Inverse of chouday.
compute millisec. of the day from jour, hour, min,sec.,ms. (cmilday) As jour*24*360000 + hour*3600000 +min*60000 +sec*1000 +ms
compute week number in a year from a given date (cweedoy) A week is always beginning by a Monday.
compute day of the week for a given date (doweek) With 1 for Monday, etc.
- 62-
compute date from the week number of the year (cdatweek) Date is computed for the first day of the week, always a Monday.
compute number of day in a month (cnbdmon) Dependent of the year because of leap years.
- 63-
- 64-
- 65-
1) General remarks
ROCOTLIB library delivers 5 kinds of subroutines: a) Basic computation subroutines, such as cxxxxx (ctimpar, csundir etc.). It only do computations without any particular previous call. One has include in this category the particular 'ctimpar' subroutine which set for a given date and time all the time varying quantities needed for the transformations matrix (results are stored in 15 common transparent to the user). The csundir and cdipdir subroutine compute the direction of the Sun in GEI, and the direction of the magnetic dipole axis in GEO, and are used in ctimpar, but can be used independently. b) Calendar subroutines, such as cxxxxx (cdoyear, ctimhou etc.). It also only do computations without any particular previous call. These are useful for conversion of dates and times given in various format, or to compute a complete calendar with the days. c) Give subroutines, such as gxxxxx (gsundi, gdipdi, etc...) which give in the output arguments useful parameters as direction of the Sun, direction of the dipole etc... in GEI and GEO systems; subroutine ctimpar must be called before using theses subroutines at each times where the date and time are changed; d) Read and check subroutines, such as rxxxxx (redate, retime), which query and read on the standard input date and time, with automatic check of good format (no hour greater than 23, or minutes greater than 59, and so on), useful to write an interactive user program where date and time are an input. e) Transformations subroutines, such as txxxxxx (tgeigeo, tgeogei, etc...) which transforms input Cartesian coordinates system into an another one following mathematical expressions given in Part I; as above, subroutine ctimpar must be called before using theses subroutines at each times where the date and time are changed. One subroutine is out of class: a call to plibinf subroutine just print the information relative to the library (version number, etc.). Section VI give an example of Fortran user program, directions for use, example of installation of the library on a UNIX system, and provide a test program code source to check the validity of the library.
- 66-
input :
iyear, imonth, iday : date as 1985 08 24 iyear must be>1901 and <2099) ihour,imin,isec : time 23 57 36 (U.T.) in common statements
output:
- 67-
ctimpa2 subroutine ctimpa2(jd1950, houday) compute_time_parameters: prepare matrix for coordinate transformations Same as ctimpar, but with different date-time input input : output: ctimpa3 subroutine ctimpa3(jd2000, houday) compute_time_parameters: prepare matrix for coordinate transformations Same as ctimpar, but with different date-time input input : output: cdipdir subroutine cdipdir(iyear,idoty,d1,d2,d3) compute_dipole_direction in GEO system compute geodipole axis direction from International Geomagnetic Reference Field (IGRF) models for time interval 1965 to 1990. For time out of interval, computation is made for nearest boundary. input : output: csundir subroutine csundir(iyear,idoty,ihour,imin,isec, gst,slong,sra,sdec,obliq) compute_sun_direction in GEI system calculates four quantities in GEI system necessary for coordinate transformations dependent on sun position (and, hence, on universal time and season) (from C.T. Russel, cosmic electrodynamics,v.2, 184-196, 1971, revised P. Robert 1992 & 2000) input : iyear : year (1901-2099) idoty : day of the year (1 for January 1) ihour,imin,isec : hours, minutes, seconds U.T. Greenwich mean sideral time (radians) longitude along ecliptic (radians) right ascension (radians) declination of the sun (radians) iyear : year (1965 - 1990) idoty : day of the year (1 for January 1) d1,d2,d3 Cartesian dipole components in GEO Julian day from 2000, decimal hour in the day in common statements Julian day from 1950, decimal hour in the day in common statements
- 68cangrat subroutine cangrat(ux,uy,uz, vx,vy,vz, angle,ratio) compute_angle_and_ratio between 2 vectors input : ux,uy,uz, vx,vy,vz output: angle (radians) and |u|/[v| csunset
subroutine csunset(iyear,imon,iday,rlat,rlon,tmer,tris,tset,durd)
compute_Sunset and other Sun parameters input : iyear,imon,iday : date rlat,rlon: geographic latitude and longitude in rad. output: tmer,tris,tset,durd : Sun meridian time, Sunrise time,
Sunset time and duration of the day, in Cha*8 variable
- 69-
cdatdoy subroutine cdatdoy(idoty,iyear,imonth,iday) compute_date_from_day_of_the_year and for a given year. input : idoty, iyear, (idoty=1 for January 1) output: imonth, iday cdatj00 subroutine cdatj00(jud00, iyear,imonth,iday) compute_date_from_Julian_day with jud00=1 for January 1, 2000 input : jud00 Julian day (1= 1/1/2000) output: iyear, imonth, iday cdatj50 subroutine cdatj50(jud50, iyear,imonth,iday) compute_date_from_Julian_day with jud50=1 for January 1, 1950 input : jud50 Julian day (1= 1/1/1950) output: iyear, imonth, iday cdatwee subroutine cdatwee(iweek,iyear,imonth,iday) compute_date_for_first_day_of_week number always a Monday input : iweek: week number in the year output: iyear, imonth, iday cdoweek subroutine cdoweek(iyear,imonth,iday,idow) compute_day_of_the_week from date input : iyear, imonth, iday output: idow : day of the week, 1 for Monday
- 70-
cdoyear subroutine cdoyear(iyear,imonth,iday, idoty) compute_day_of_the_year with idoty=1 for January 1 input : iyear,imonth,iday, ex: 1990,10,17 output: idoty ex: 290 cfrdayn subroutine cfrdayn(iday,cday,n) compute_french_day_name as Lundi for iday= 1 input : iday, day number (1-7) output: cday, as Lundi an n= number of character of the word cfrmonn subroutine cfrmonn(imonth,cmonth,n) compute_french_month_name as Janvier for imonth=1 input : imonth, month (1-12) output: cmonth, as Janvier an n= number of character of the word chouday subroutine chouday(ih,im,is,houday) compute hour_of_the_day from hours, minutes, seconds input : ih,im,is output: houday decimal hour of the day cjd1950 subroutine cjd1950(iyear,imonth,iday, jud50) compute_Julian_day with jud50=1 for January 1, 1950
input : iyear,imonth,iday ex: 1990,10,17 output: jud50 cjd2000 subroutine cjd2000(iyear,imonth,iday, jud00) compute_Julian_day with jud00=1 for January 1, 2000
- 71-
cmilday subroutine cmilday(ih,im,is,ims,milday) compute_millisecond_of_the_day input : ih,im,is,ims: time in hour,min,sec,millisec output: milday, millisec. of the day (<86400000) cnbdmon subroutine cnbdmon(iyear,imonth,nbday) compute_number_of_days_in_a_month input : iyear,imonth output: nbday, ex 31 for January coleapy subroutine coleapy(iyear,ileap) compute_leap_year with ileap=1 for leap year, 0 if not input : iyear (ex: 1980) output: ileap (1 or 0 if iyear is or not a leap year) ctimhou subroutine ctimhou(houday,ih,im,is) compute_time from decimal hour of the day input : houday, decimal hour of the day output: ih,im,is ctimmil subroutine ctimmil(milday,ih,im,is,ims) compute_time from millisecond of the day input : milday, millisecond of the day output: ih,im,is,ims cusdayn subroutine cusdayn(iday,cday,n) compute_US_day_name as Monday for iday= 1 input : iday, day number (1-7) output: cday, as Monday an n= number of character of the word
- 72-
cusmonn subroutine cusmonn(imonth,cmonth,n) compute_US_month_name as January for imonth=1 input : imonth, month (1-12) output: cmonth, as January an n= number of character of the word cweedoy subroutine cweedoy(iyear,imonth,iday,iweek) compute_week_of_the_year from date input : iyear, imonth, iday output: iweek : week of the year, 1 for first Monday
- 73-
gdipdir subroutine gdipdir(dxgei,dygei,dzgei,dxgeo,dygeo,dzgeo) give_dipole_direction in GEI and GEO system input : output: none dxgei,dygei,dzgei dxgeo,dygeo,dzgeo Cartesian dipole GEI coord. Cartesian dipole GEO coord.
gdiptan subroutine gdiptan(diptan) give_dipole_tilt_angle in GSM system (radians) input : output: none diptan=(D,Z) angle in GSM (radians) (diptan>0 when the north magnetic pole is tilted toward the Sun)
gecldir subroutine gecldir(exgei,eygei,ezgei,exgeo,eygeo,ezgeo) give_ecliptic_direction in GEI and GEO system input : output: none exgei,eygei,ezgei exgeo,eygeo,ezgeo Cartesian eclip. GEI coord. Cartesian eclip. GEO coord.
gsrodir subroutine gsrodir(rxgei,rygei,rzgei,rxgeo,rygeo,rzgeo) give_sun_rotation_direction in GEI and GEO system input : none output: rxgei,rygei,rzgei Cartesian sun rot. GEI coord. rxgeo,rygeo,rzgeo Cartesian sun rot. GEO coord. gsundir subroutine gsundir(sxgei,sygei,szgei,sxgeo,sygeo,szgeo) give_sun_direction in GEI and GEO system input : output: none sxgei,sygei,szgei sxgeo,sygeo,szgeo Cartesian sun GEI coord. Cartesian sun GEO coord.
- 74-
gsunpar subroutine gsunpar(gmst,slon,sras,sdec) give_sun_parameter dependant of time in GEI system input : output: none gmst slon sras sdec Greenwich mean sideral time(radians) longitude along ecliptic (radians) right ascension (radians) declination of the sun (radians)
gvernum subroutine gvernum(vernum) give_version_number of the library input : output: none vernum (ex 1.0)
- 75-
- 76-
tcarsph subroutine tcarsph(x,y,z,r,teta,phi) transforms_car_to_sph : CAR SPH system input : output: tsphcar subroutine tsphcar(r,teta,phi,x,y,z) transforms_sph_to_car : SPH CAR system input : output:
2
x,y,z r,teta,phi
(radians)
r,teta,phi x,y,z
(radians)
tgeigeo subroutine tgeigeo(xgei,ygei,zgei,xgeo,ygeo,zgeo) transforms_gei_to_geo : GEI GEO system input : xgei,ygei,zgei output: xgeo,ygeo,zgeo tgeogei subroutine tgeogei(xgeo,ygeo,zgeo,xgei,ygei,zgei) transforms_geo_to_gei : GEO GEI system input : xgeo,ygeo,zgeo Cartesian geo coordinates output: xgei,ygei,zgei Cartesian gei coordinates
3
tgeimag subroutine tgeimag(xgei,ygei,zgei,xmag,ymag,zmag) transforms_gei_to_mag : GEI MAG system input : xgei,ygei,zgei output: xmag,ymag,zmag tmaggei subroutine tmaggei(xmag,ymag,zmag,xgei,ygei,zgei) transforms_mag_to_gei : MAG GEI system input : xmag,ymag,zmag Cartesian mag coordinates output: xgei,ygei,zgei Cartesian gei coordinates Cartesian gei coordinates Cartesian mag coordinates
- 774
tgeisma subroutine tgeisma(xgei,ygei,zgei,xsma,ysma,zsma) transforms_gei_to_sma : GEI SM system input : xgei,ygei,zgei output: xsma,ysma,zsma tsmagei subroutine tsmagei(xsma,ysma,zsma,xgei,ygei,zgei) transforms_sma_to_gei : SM GEI system input : xsma,ysma,zsma output: xgei,ygei,zgei
5
tgeigsm subroutine tgeigsm(xgei,ygei,zgei,xgsm,ygsm,zgsm) transforms_gei_to_gsm : GEI GSM system input : xgei,ygei,zgei output: xgsm,ygsm,zgsm tgsmgei subroutine tgsmgei(xgsm,ygsm,zgsm,xgei,ygei,zgei) transforms_gsm_to_gei : GSM GEI system input : xgsm,ygsm,zgsm output: xgei,ygei,zgei
6
tgeigse subroutine tgeigse(xgei,ygei,zgei,xgse,ygse,zgse) transforms_gei_to_gse : GEI GSE system input : xgei,ygei,zgei Cartesian gei coordinates output: xgse,ygse,zgse Cartesian gse coordinates tgsegei subroutine tgsegei(xgse,ygse,zgse,xgei,ygei,zgei) transforms_gse_to_gei : GSE GEI system input : xgse,ygse,zgse output: xgei,ygei,zgei Cartesian gse coordinates Cartesian gei coordinates
- 787
tgeigsq subroutine tgeigsq(xgei,ygei,zgei,xgsq,ygsq,zgsq) transforms_gei_to_gsq : GEI GSEQ system input : xgei,ygei,zgei output: xgsq,ygsq,zgsq tgsqgei subroutine tgsqgei(xgsq,ygsq,zgsq,xgei,ygei,zgei) transforms_gsq_to_gei : GSEQ GEI system input : xgsq,ygsq,zgsq output: xgei,ygei,zgei
8
tgsegsq subroutine tgsegsq(xgse,ygse,zgse,xgsq,ygsq,zgsq) transforms_gse_to_gsq : GSE GSEQ system input : xgse,ygse,zgse output: xgsq,ygsq,zgsq tgsqgse subroutine tgsqgse(xgsq,ygsq,zgsq,xgse,ygse,zgse) transforms_gsq_to_gse : GSEQ GSE system input : xgsq,ygsq,zgsq output: xgse,ygse,zgse
9
tgsegsm subroutine tgsegsm(xgse,ygse,zgse,xgsm,ygsm,zgsm) transforms_gse_to_gsm : GSE GSM system input : xgse,ygse,zgse output: xgsm,ygsm,zgsm tgsmgse subroutine tgsmgse(xgsm,ygsm,zgsm,xgse,ygse,zgse) transforms_gsm_to_gse : GSM GSE system input : xgsm,ygsm,zgsm output: xgse,ygse,zgse Cartesian gsm coordinates Cartesian gse coordinates Cartesian gse coordinates Cartesian gsm coordinates
- 7910
tgsmsma subroutine tgsmsma(xgsm,ygsm,zgsm,xsma,ysma,zsma) transforms_gsm_to_sma : GSM SM system input : xgsm,ygsm,zgsm output: xsma,ysma,zsma tsmagsm subroutine tsmagsm(xsma,ysma,zsma,xgsm,ygsm,zgsm) transforms_sma_to_gsm : SM GSM system input : xsma,ysma,zsma output: xgsm,ygsm,zgsm
10 bis
tgsmgsq subroutine tgsmgsq(xgsq,ygsq,zgsq,xmag,ymag,zmag) transforms_gsm_to_gsq : GSM GSQ system (via GSMGSEGSQ) input : xgsm,ygsm,zgsm output: xgsq,ygsq,zgsq tgsqgsm subroutine tgsqgsm(xgsq,ygsq,zgsq,xgsm,ygsm,zgsm) transforms_gsq_to_gsm : GSQ GSM system (via GSQGSEGSM) input : xgsq,ygsq,zgsq output: xgsm,ygsm,zgsm
10 ter
tgsmmag subroutine tgsmmag(xgsm,ygsm,zgsm,xmag,ymag,zmag) transforms_gsm_to_mag : GSM MAG system (via GSMSMMAG) input : xgsm,ygsm,zgsm output: xmag,ymag,zmag tmaggsm subroutine tmaggsm(xmag,ymag,zmag,xgsm,ygsm,zgsm) transforms_mag_to_gsm : MAG GSM system (via MAGSMGSM) input : xmag,ymag,zmag output: xgsm,ygsm,zgsm Cartesian mag coordinates Cartesian gsm coordinates Cartesian gsm coordinates Cartesian mag coordinates
- 8011
tsmamag subroutine tsmamag(xsma,ysma,zsma,xmag,ymag,zmag) transforms_sma_to_mag : SM MAG system input : xsma,ysma,zsma output: xmag,ymag,zmag Cartesian sma coordinates Cartesian mag coordinates
tmagsma subroutine tmagsma(xmag,ymag,zmag,xsma,ysma,zsma) transforms_mag_to_sma : MAG SM system input : xmag,ymag,zmag output: xsma,ysma,zsma
12
tgeomag subroutine tgeomag(xgeo,ygeo,zgeo,xmag,ymag,zmag) transforms_geo_to_mag : GEO MAG system input : xgeo,ygeo,zgeo output: xmag,ymag,zmag tmaggeo subroutine tmaggeo(xmag,ymag,zmag,xgeo,ygeo,zgeo) transforms_mag_to_geo : MAG GEO system input : xmag,ymag,zmag output: xgeo,ygeo,zgeo
13
tgeosma subroutine tgeosma(xgeo,ygeo,zgeo,xsma,ysma,zsma) transforms_geo_to_sma : GEO SM system input : xgeo,ygeo,zgeo output: xsma,ysma,zsma tsmageo subroutine tsmageo(xsma,ysma,zsma,xgeo,ygeo,zgeo) transforms_sma_to_geo : SM GEO system input : xsma,ysma,zsma output: xgeo,ygeo,zgeo Cartesian sma coordinates Cartesian geo coordinates Cartesian geo coordinates Cartesian sma coordinates
- 8114
tgeogsm subroutine tgeogsm(xgeo,ygeo,zgeo,xgsm,ygsm,zgsm) transforms_geo_to_gsm : GEO GSM system input : xgeo,ygeo,zgeo output: xgsm,ygsm,zgsm tgsmgeo subroutine tgsmgeo(xgsm,ygsm,zgsm,xgeo,ygeo,zgeo) transforms_gsm_to_geo : GSM GEO system input : xgsm,ygsm,zgsm output: xgeo,ygeo,zgeo
15
tgeogse subroutine tgeogse(xgeo,ygeo,zgeo,xgse,ygse,zgse) transforms_geo_to_gse : GEO GSE system input : xgeo,ygeo,zgeo output: xgse,ygse,zgse tgsegeo subroutine tgsegeo(xgse,ygse,zgse,xgeo,ygeo,zgeo) transforms_gse_to_geo : GSE GEO system input : xgse,ygse,zgse output: xgeo,ygeo,zgeo
16
tgeogsq subroutine tgeogsq(xgeo,ygeo,zgeo,xgsq,ygsq,zgsq) transforms_geo_to_gsq : GEO GSEQ system input : xgeo,ygeo,zgeo output: xgsq,ygsq,zgsq tgsqgeo subroutine tgsqgeo(xgsq,ygsq,zgsq,xgeo,ygeo,zgeo) transforms_gsq_to_geo : GSEQ GEO system input : xgsq,ygsq,zgsq output: xgeo,ygeo,zgeo Cartesian gsq coordinates Cartesian geo coordinates Cartesian geo coordinates Cartesian gsq coordinates
- 8217
tgeodme subroutine tgeodme(xgeo,ygeo,zgeo,rlat,rlong,xdme,ydme,zdme) transforms_geo_to_dme : GEO DM system input : xgeo,ygeo,zgeo rlat,rlong output: xdme,ydme,zdme tdmegeo subroutine tdmegeo(xdme,ydme,zdme,rlat,rlong,xgeo,ygeo,zgeo) transforms_dme_to_geo : DM GEO system input : xdme,ydme,zdme rlat,rlong output: xgeo,ygeo,zgeo
18
Cartesian geo coordinates latitude and longitude of the point of observation (radians) Cartesian dme coordinates
Cartesian dme coordinates latitude and longitude of the point of observation (radians) Cartesian geo coordinates
tgeovdh subroutine tgeovdh(xgeo,ygeo,zgeo,rlat,rlong,xvdh,yvdh,zvdh) transforms_geo_to_vdh : GEO VDH system input : xgeo,ygeo,zgeo rlat,rlong output: xvdh,yvdh,zvdh tvdhgeo subroutine tvdhgeo(xvdh,yvdh,zvdh,rlat,rlong,xgeo,ygeo,zgeo) transforms_vdh_to_geo : VDH GEO system input : xvdh,yvdh,zvdh rlat,rlong output: xgeo,ygeo,zgeo
19
Cartesian geo coordinates latitude and longitude of the point of observation (radians) Cartesian vdh coordinates
Cartesian vdh coordinates latitude and longitude of the point of observation (radians) Cartesian geo coordinates
tgsesr2 subroutine tgsesr2(xgse,ygse,zgse,rotx,roty,rotz,xsr2,ysr2,zsr2) transforms_gse_to_sr2 : GSE SR2 system input : xgse,ygse,zgse rotx,roty,rotz output: xsr2,ysr2,zsr2 Cartesian GSE coordinates Cartesian GSE coordinates of the rotation axis of the S/C Cartesian SR2 coordinates
- 83tsr2gse
subroutine tsr2gse(xsr2,ysr2,zsr2,rotx,roty,rotz, xgse,ygse,zgse) transforms_sr2_to_gse : SR2 GSE system input : xsr2,ysr2,zsr2 rotx,roty,rotz output: xgse,ygse,zgse
20
Cartesian SR2 coordinates Cartesian GSE coordinates of the rotation axis of the S/C Cartesian GSE coordinates
tsr2mfa
subroutine tsr2mfa(xsr2,ysr2,zsr2,bx,by,bz,rotx,roty,rotz, xmfa,ymfa,zmfa)
Cartesian SR2 coordinates Cartesian SR2 coordinates of the DC magnetic field Cartesian GSE coordinates of the rotation axis of the S/C Cartesian MFA coordinates
tsr2sre
subroutine tsr2sre(xsr2,ysr2,spifre,spipha,deltaT,xsre,ysre)
(T -To) (sec.), between the current time & the time where is measured the spin phase output : xsre,ysre cartesian sr coordinates Comment: Z component is unchanged (spin axis)
deltaT
tsresr2
subroutine tsresr2(xsre,ysre,spifre,spipha,deltaT,xsr2,ysr2)
(T -To) (sec.), between the current time & the time where is measured the spin phase output : xsr2,ysr2 cartesian sr coordinates Comment: Z component is unchanged (spin axis)
deltaT
- 84-
subroutine prinfo print_information and version of the library; result of this call is listed in section VI input : output: none print information on standard output
- 85-
suite
- 86rocotexp.make rocotexp.o rocotexp.exe rocotexp.bat rocotexp.f rocotexp.in rocotexp.out rocotexp.ou8 rocotinf.make rocotinf.o rocotinf.exe rocotinf.bat rocotinf.f rocotinf.out rocotinf.ou8 II- INTALLATION ----------After copy of above files, all *.o and *.exe can be re-created by running make_all.bat. All *.out files can be re-created by running run_all.bat. III- APPLICATIONS -----------1) rocotche program is a check program of the library. rocotche.bat create it by: rocotche.exe <rocotche.in >rocotche.out The rocotche.out created file can be compared with the initial rocotche.ou8 file; The file must be the same from a system to another one, except precision: for instance, you can find 0.999999 instead of 1.000000, and vice-versa. No major change must be found. For any other tests, it is possible, of course,to change input values into rocotche.in file or directly answer by typing data on terminal while directly running rocotche.exe. Obviously, rocotche.out is changed. 2) rocotexp.exe is an example program showing how to use the library. rocotexp.bat create it by: rocotexp.exe <rocotexp.in >rocotexp.out rocotexp.exe can be also used as an interactive program. 3) rocotinf.out is a program giving short informations on the library, in particular the version number. rocotinf.bat create it by: rocotinf.exe >rocotinf.out shell script object file executable shell script fortran code input output output/V 1.8 shell script object file executable shell script fortran code output file output/V 1.8 to of of to of of of of to of of to of of of create rocotexp.exe executable file "example" program "example" program run rocotexp.exe "example" program "example" program "example" program "example" program create rocotinf.exe executable file "information" program "information" program run rocotinf.exe "information" program "information" program "information" program
IV- COMMENTS -------for new application, compilation and link can be as following: f77 -c toto.f f77 toto.o rocotlib.o -o toto.exe --> create toto.o --> create toto.exe
Library has been developped on a UNIX machine with f77 compiler. File rocotche.ou8 correspond to results with SUN Sparc Station 20 machine, with the version 1.8. For more information, see paper documentation. P. Robert, revised revised revised revised November March January July December 1992 1993 1995 2001 2002
************************************************************************
- 87-
rocotlib.make file
#!/bin/sh echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" echo " Rocotlib Package" echo " create object and executable files of rocotlib.f program" echo " P. Robert, June 2001" echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" echo " " # F77 par defaut if test $# -eq 0 then FC=f77 else FC=$1 fi FC1="$FC -c -C" # creation de l'objet if test -f rocotlib.o then rm rocotlib.o fi if test then echo $FC1 else echo exit fi -f rocotlib.f "1) compil rocotlib.f, make rocotlib.o with $FC1" rocotlib.f "No rocotlib.f file" 1
- 88-
print* print*, print*, print* print*, print*, print*, print* print*, print*
The rocotlib.o object file beeing existant, the user can compil the example program or its own program by a command such as : f77 -c rocotexp.f which produce rocotexp.o binary file, and then link with the rocotlib.o library by : f77 rocotexp.o rocotlib.o -o rocotexp.exe which produce rocotexp.exe executable file (rocotexp.o can be then erased). Both command can be grouped as: f77 rocotexp.f rocotlib.o -o rocotexp.exe (then rocotexp.o is not produced).
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 88/111
- 89The users can also use the rocotexp.make file included in the package, and given below, and type : rocotexp.make or rocotexp.make f90
according to the choosed compiler F77 (default) or F90 or other. If the rocotlib.o file is not in the same directory than rocotexp.f, the corresponding line in rocotexp.make file must takes into account the path of the rocotlib.o library.
rocotexp.make file
#!/bin/sh echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" echo " Rocotlib Package" echo " create object and executable files of rocotexp.f program" echo " P. Robert, June 2001" echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" echo " " # F77 par defaut if test $# -eq 0 then FC=f77 else FC=$1 fi FC1="$FC -c -C" FC2="$FC -C" # creation de l'objet if test -f rocotexp.o then rm rocotexp.o fi if test then echo $FC1 else echo exit fi -f rocotexp.f "1) compil rocotexp.f, make rocotexp.o with $FC1" rocotexp.f "No rocotexp.f file" 1
# link avec rocotlib.o et creation de l'executable if test -f rocotexp.exe then rm rocotexp.exe fi if test then echo echo $FC2 else echo exit fi -f rocotlib.o " " "2) link with rocotlib.o, make rocotexp.exe with $FC2" rocotexp.o rocotlib.o -o rocotexp.exe "No rocotlib.o object library file" 2
- 90-
The rocotexp program can be run interactively, the input beeing taken from the standard input, by: rocotexp.exe or can be run in batch mode by : rocotexp.bat the input data being taken from the rocotexp.in file. Then the results are in the rocotexp.out file, and must be as following :
rocotexp.out file
**************************************************** ROCOTEXP: iyear,imonth,iday ? (ex: 1990,10,17) 1990 7 14 hour, minute, second ? (ex: 10,45,50) 12 0 0 date: MM/JJ/YY= time: HH/MM/SS= Sun in GEI: Sun in GEO: Sun in GSM: 7 14 12 0 1990 0 0.851934 0.369380 2.35213E-02 0.369380 -4.47035E-08 -2.98023E-08
****************************************************
- 91-
rocotinf.out file
***************************************************** Coordinates Transformation Library Revised Version ROCOTLIB
Study of the Cluster Mission Planning Related Aspects within the Numerical Simulations Network Patrick ROBERT, CRPE, November 1992 ___________________ First revised revised revised revised revised revised revised revised version version version version version version version version version 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, PR, PR, PR, PR, PR, PR, PR, PR, PR, CRPE, CRPE, CETP, CETP, CETP, CETP, CETP, CETP, CETP, November July January July June December June December November 1992 1993 1995 2000 2001 2001 2002 2002 2003
Copyright 1992, Patrick ROBERT, CNRS-ESA, All Rights reserved ___________________ For details, see the orginal document untitled: "CLUSTER Software Tools, part I: Coordinate Transformation Library" Document de travail DT/CRPE/1231 Patrick Robert, CRPE/TID, Juillet 1993 ___________________
- 92-
5) Check program
general remarks The rocotche.f and rocotche.exe programs delivered in the standard package allows the user to check the validity of the library for a given machine and compiler. It run from an input date and time, an input vector test, and an input direction of observation. Next paragraph show examples of input and output data file (rocotche.in and rocotche.out files in standard package). Accuracy of the computation is one deduce of the Sun direction computation, which is 0.006 degrees. Sections of rocotche.out file are as follow: I) check calendar conversions of the library; II) check basic time parameters as Sun direction, Dipole direction, Ecliptic pole, Sun equator pole; III) check basic transformation, for instance verify that direction of the Sun in GSM system is well the X axis, that Dipole direction in MAG system is well the Z axis, and so on; IV) check the usual transformations, by changing the input vector across all available paths showed on the schematic diagram of II-2. Mainly, the vector is transformed: a) as a "star" centred on GEI system (see schematic diagram); b) as a "counter-clockwise ring cumulative transformation", from GEO to GEO after a complete circle; c) as a "clockwise ring cumulative transformation", from GEO to GEO, in the other sense; d) as a "star" centred on GEO system; e) Finally, input direction of the point of observation is used to check local coordinate systems, i.e. DM and VDH. At each "go and back", one check that the original vector is returned to the same value, taking into account accuracy of the computation (32 bits simple precision, 7 significative digits, and input Sun direction within 0.006 degrees).
Revised Version 1.8 - November 2003 ___________________ Rocotche program: Check transformations of Rocotlib Patrick ROBERT, CRPE, November 1992 last revision for V 1.8 : November 2003 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SUMMARY OF CHECK OPERATIONS : *************************** I) TEST OF ROCOTLIB CALENDAR CONVERSIONS II) CHECK BASIC TIME PARAMETERS III) CHECK BASIC TRANSFORMATIONS IV) TEST OF ROCOTLIB TRANSFORMATION SUBROUTINES A) STAR TRANSFORMATIONS AROUND GEI GEI GEI GEI GEI SYSTEM
B) COUNTERCLOCKWISE RING CUMULATIVE TRANSFORM. GEO ->GEI ->GSQ ->GSE ->GSM ->SM ->MAG ->GEO C) CLOCKWISE RING CUMULATIVE TRANSFORMATIONS GEO ->MAG ->SM ->GSM ->GSE ->GSQ ->GEI ->GEO D) STAR TRANSFORMATIONS AROUND GEO GEO GEO GEO GEO SYSTEM
E) LOCAL SYSTEMS GEO ----> DM GEO ----> VDH F) SPACECRAFT SYSTEMS GEO -> GSE -> SR2 -> SR -> SR2 -> GSE -> GEO
Suite
- 94-
INPUT DATA TEST : *************** INPUT DATE AND TIME: iyear,imonth,iday ? (ex: 1990,10,17) 1990 10 17 hour, minute, second ? (ex: 10,45,50) 12 30 1 iyear,imonth,iday: ih, im, is : 1990 10 17 12 30 01
INPUT VECTOR TEST: r, teta,phi of any vector in GEO system ? (deg.) 5.00000 30.000 60.000 INPUT GEOG. LAT AND LONG. FOR LOCAL SYSTEMS TEST: lat. and long. of local direct. of observation ? (d.) 45.000 30.000 INPUT SPIN DIRECTION for SR and SR2 SYSTEMS: r, teta,phi of spin axis in GSE system ? (deg.) 2.00000 170.000 10.000 SPIN FREQUENCY, SPIN PHASE & Deltat T : Spin frequency, Spin phase ? (Hz, deg.) 0.25000 30.000 delta T ? (sec. from time of spin phase) 1.23450
Suite
I) TEST OF ROCOTLIB CALENDAR CONVERSIONS ===================================== INPUT DATE AND TIME: year, month, day : hour, minute, second: computed values: decimal hour of the day: day of the year: Julian day from 1-1-1950: Julian day from 1-1-2000: leap year (1=yes,0=no): recompute recompute recompute recompute date date date time from from from from 12.5003 290 14899 -3363 0 1990 1990 1990 1 10 10 10 17 17 17 1990 12 10 30 17 1
year and day of the year: Julian day 1950 : Julian day 2000 : decimal hour: 12 30
II) CHECK BASIC TIME PARAMETERS =========================== SUN PARAMETERS IN GEI SYSTEM Greenwich Sideral Time ecliptic longitude right ascention declination DIPOLE TILT ANGLE SUN DIRECTION in GEI: X= Y= Z= in GEO: X= Y= Z= DIPOLE DIRECTION in GEI: X= Y= Z= in GEO: X= Y= Z= ECLIPTIC DIRECTION in GEI: X= Y= Z= in GEO: X= Y= Z= SUN EQUATOR DIRECTION in GEI: X= Y= Z= in GEO: X= Y= Z= 0.13094 0.42164 0.89726 r = teta= phi = 1.00000 26.200 72.747 0.12170 -0.42440 0.89726 r = teta= phi = 1.00000 26.200 -74.000 0.21812 0.33266 0.91747 r = teta= phi = 1.00000 23.440 56.747 0.00000 -0.39780 0.91747 r = teta= phi = 1.00000 23.440 -90.000 0.06068 -0.17795 0.98217 r = teta= phi = 1.00000 10.837 -71.171 -0.14832 0.11554 0.98217 r = teta= phi = 1.00000 10.837 142.081 0.96832 -0.19090 -0.16100 r = teta= phi = 1.00000 99.265 -11.152 -0.91444 -0.37132 -0.16100 r = teta= phi = 1.00000 99.265 -157.900 (deg.): (deg.): (deg.): (deg.): (deg.): 213.253 203.879 202.100 -9.265 -3.750
- 96III) CHECK BASIC TRANSFORMATIONS =========================== Check (S,E) angle is equal to 90 deg. : angle= 1) input vector: Sun direction in GEI system ----------------------------------------X= Y= Z= -0.91444 -0.37132 -0.16100 r = teta= phi = 1.00000 99.265 -157.900 90.000 (deg.)
in GEO system X= Y= Z= check Y=0 in SM 0.96832 -0.19090 -0.16100 r = teta= phi = 1.00000 99.265 -11.152
system with tgeisma: X= Y= Z= 0.99786 0.00000 -0.06540 r = teta= phi = 1.00000 93.750 0.000
with tgeosma: X= Y= Z= 0.99786 0.00000 -0.06540 r = teta= phi = 1.00000 93.750 0.000
check Y=0 and Z=0 in GSM system with tgeigsm: X= Y= Z= 1.00000 0.00000 0.00000 with tgeogsm: X= Y= Z= 1.00000 0.00000 0.00000 r = teta= phi = 1.00000 90.000 0.000 r = teta= phi = 1.00000 90.000 0.000
check Y=0 and Z=0 in GSE system with tgeigse: X= Y= Z= 1.00000 0.00000 0.00000 with tgeogse: X= Y= Z= 1.00000 0.00000 0.00000 r = teta= phi = 1.00000 90.000 0.000 r = teta= phi = 1.00000 90.000 0.000
check Y=0 and Z=0 in GSQ system with tgeigsq: X= Y= Z= 1.00000 0.00000 0.00000 with tgeogsq: X= Y= Z= 1.00000 0.00000 0.00000 r = teta= phi = 1.00000 90.000 0.000 r = teta= phi = 1.00000 90.000 0.000
Suite
- 97-
2) input vector: Dipole direction in GEI system -------------------------------------------X= Y= Z= -0.14832 0.11554 0.98217 in GEO system X= Y= Z= 0.06068 -0.17795 0.98217 r = teta= phi = 1.00000 10.837 -71.171 r = teta= phi = 1.00000 10.837 142.081
check X=0 and Y=0 in MAG system with tgeimag: X= Y= Z= 0.00000 0.00000 1.00000 with tgeomag: X= Y= Z= check X=0 and Y=0 in SM 0.00000 0.00000 1.00000 r = teta= phi = 1.00000 0.000 0.000 r = teta= phi = 1.00000 0.000 0.000
system with tgeisma: X= Y= Z= 0.00000 0.00000 1.00000 with tgeosma: X= Y= Z= 0.00000 0.00000 1.00000 r = teta= phi = 1.00000 0.000 0.000 r = teta= phi = 1.00000 0.000 0.000
check Y=0 in GSM system with tgeigsm: X= Y= Z= -0.06540 0.00000 0.99786 r = teta= phi = 1.00000 3.750 180.000
with tgeogsm: X= Y= Z= -0.06540 0.00000 0.99786 r = teta= phi = 1.00000 3.750 180.000
Suite
- 983) input vector: Ecliptic direction in GEI system ---------------------------------------------X= Y= Z= 0.00000 -0.39780 0.91747 in GEO system X= Y= Z= 0.21812 0.33266 0.91747 r = teta= phi = 1.00000 23.440 56.747 r = teta= phi = 1.00000 23.440 -90.000
check X=0 and Y=0 in GSE system with tgeigse: X= Y= Z= 0.00000 0.00000 1.00000 with tgeogse: X= Y= Z= 0.00000 0.00000 1.00000 r = teta= phi = 1.00000 0.000 0.000 r = teta= phi = 1.00000 0.000 0.000
check X=0 in GSQ system with tgeigsq: X= Y= Z= 0.00000 -0.07931 0.99685 r = teta= phi = 1.00000 4.549 -90.000
with tgeogsq: X= Y= Z= 0.00000 -0.07931 0.99685 r = teta= phi = 1.00000 4.549 -90.000
4) input vector: Sun equator in GEI system --------------------------------------X= Y= Z= 0.12170 -0.42440 0.89726 r = teta= phi = 1.00000 26.200 -74.000
in GEO system X= Y= Z= 0.13094 0.42164 0.89726 r = teta= phi = 1.00000 26.200 72.747
check and Y=0 in GSQ system with tgeigsq: X= Y= Z= -0.09815 0.00000 0.99517 r = teta= phi = 1.00000 5.633 180.000
with tgeogsq: X= Y= Z= -0.09815 0.00000 0.99517 r = teta= phi = 1.00000 5.633 180.000
Suite
- 995) input vector: North geographic in GEO system -------------------------------------------X= Y= Z= 0.00000 0.00000 1.00000 r = teta= phi = 1.00000 0.000 0.000
check X=0 and Y=0 in GEI system with tgeogei: X= Y= Z= 0.00000 0.00000 1.00000 r = teta= phi = 1.00000 0.000 0.000
check Y=0 in MAG system with tgeimag: X= Y= Z= -0.18801 0.00000 0.98217 r = teta= phi = 1.00000 10.837 180.000
with tgeomag: X= Y= Z= -0.18801 0.00000 0.98217 r = teta= phi = 1.00000 10.837 180.000
Suite
- 100IV) TEST OF ROCOTLIB TRANSFORMATION SUBROUTINES =========================================== 1) input choosed test vector in GEO system : X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000
2) converts GEO system to GEI system by tgeogei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747
A) STAR TRANSFORMATIONS AROUND GEI SYSTEM ======================================== # 3 GEI --------> # 4 GEI --------> # 5 GEI --------> # 6 GEI --------> MAG SM GSM GSE
3) converts GEI system to MAG system by tgeimag X= Y= Z= -2.43054 1.88187 3.94348 r = teta= phi = 5.00000 37.936 142.251
come back to GEI system by tmaggei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747 0.000 1.00000 (deg.)
difference beetween first GEI vector: angle= ratio= 4) converts GEI system to SM system by tgeisma X= Y= Z= 0.35862 3.05292 3.94348 r = teta= phi =
come back to GEI system by tsmagei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747 0.000 1.00000 (deg.)
difference beetween first GEI vector: angle= ratio= 5) converts GEI system to GSM system by tgeigsm X= Y= Z= 0.09996 3.05292 3.95849 r = teta= phi =
come back to GEI system by tgsmgei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747 0.000 1.00000 (deg.)
Suite
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 100/111
- 1016) converts GEI system to GSE system by tgeigse X= Y= Z= 0.09996 0.57634 4.96567 r = teta= phi = 5.00000 6.718 80.160
come back to GEI system by tgsegei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747 0.000 1.00000 (deg.)
B) COUNTERCLOCKWISE RING CUMULATIVE TRANSFORMATIONS ================================================ # 2 7 8 9 10 11 12 GEO -> GEI -> GSQ -> GSE -> GSM -> SM -> MAG -> GEO input choosed test vector in GEO system : X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000
2) converts GEO system to GEI system by tgeogei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747
7) converts GEI system to GSQ system by tgeigsq X= Y= Z= 0.09996 0.18069 4.99573 r = teta= phi = 5.00000 2.367 61.047
8) converts GSQ system to GSE system by tgsqgse X= Y= Z= 0.09996 0.57634 4.96567 r = teta= phi = 5.00000 6.718 80.160
9) converts GSE system to GSM system by tgsegsm X= Y= Z= 10) converts GSM system to SM 0.09996 3.05292 3.95849 r = teta= phi = 5.00000 37.655 88.125
system by tgsmsma X= Y= Z= 0.35862 3.05292 3.94348 r = teta= phi = 5.00000 37.936 83.300
11) converts SM
system to MAG system by tsmamag X= Y= Z= -2.43054 1.88187 3.94348 r = teta= phi = 5.00000 37.936 142.251
12) converts MAG system to GEO system by tmaggeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
Suite
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 101/111
- 102C) CLOCKWISE RING CUMULATIVE TRANSFORMATIONS ========================================= # 12 11 10 9 8 7 2 GEO -> MAG -> SM -> GSM -> GSE -> GSQ -> GEI -> GEO input choosed test vector in GEO system : X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000
12) converts GEO system to MAG system by tgeomag X= Y= Z= 11) converts MAG system to SM -2.43054 1.88187 3.94348 r = teta= phi = 5.00000 37.936 142.251
system by tmagsma X= Y= Z= 0.35862 3.05292 3.94348 r = teta= phi = 5.00000 37.936 83.300
10) converts SM
system to GSM system by tsmagsm X= Y= Z= 0.09996 3.05292 3.95849 r = teta= phi = 5.00000 37.655 88.125
9) converts GSM system to GSE system by tgsmgse X= Y= Z= 0.09996 0.57634 4.96567 r = teta= phi = 5.00000 6.718 80.160
8) converts GSE system to GSQ system by tgsegsq X= Y= Z= 0.09996 0.18069 4.99573 r = teta= phi = 5.00000 2.367 61.047
7) converts GSQ system to GEI system by tgsqgei X= Y= Z= 0.14185 -2.49597 4.33013 r = teta= phi = 5.00000 30.000 -86.747 0.000 1.00000 (deg.)
difference beetween first GEI vector: angle= ratio= 2) converts GEI system to GEO system by tgeigeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi =
Suite
- 103D) STAR TRANSFORMATIONS AROUND GEO SYSTEM ======================================== # 13 GEO --------> # 14 GEO --------> # 15 GEO --------> # 16 GEO --------> SM GSM GSE GSQ
input choosed test vector in GEO system : X= Y= Z= 13) converts GEO system to SM 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000
system by tgeosma X= Y= Z= 0.35862 3.05292 3.94348 r = teta= phi = 5.00000 37.936 83.300
come back to GEO system by tsmageo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 14) converts GEO system to GSM system by tgeogsm X= Y= Z= 0.09996 3.05292 3.95849 r = teta= phi =
come back to GEO system by tgsmgeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 15) converts GEO system to GSE system by tgeogse X= Y= Z= 0.09996 0.57634 4.96567 r = teta= phi =
come back to GEO system by tgsegeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 16) converts GEO system to GSQ system by tgeogsq X= Y= Z= 0.09996 0.18069 4.99573 r = teta= phi =
come back to GEO system by tgsqgeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
Suite
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 103/111
- 104E) LOCAL SYSTEMS TRANSFORMATIONS ============================= # 17 GEO --------> DM # 18 GEO --------> VDH 1) first direction of observation in GEO system: geog. lat., long. = 60.000 60.000 17) converts GEO system to DM system by tgeodme X= Y= Z= 3.07392 0.00000 3.94348 r = teta= phi = 5.00000 37.936 0.000
come back to GEO system by tdmegeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 18) converts GEO system to VDH system by tgeovdh X= Y= Z= 5.00000 0.00000 0.00000 r = teta= phi =
come back to GEO system by tvdhgeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 2) second direction of observation in GEO system: geog. lat., long. = 45.000 30.000 17) converts GEO system to DM system by tgeodme X= Y= Z= 2.63031 1.59072 3.94348 r = teta= phi =
come back to GEO system by tdmegeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
difference beetween first GEO vector: angle= ratio= 18) converts GEO system to VDH system by tgeovdh X= Y= Z= 4.59279 1.25000 1.53093 r = teta= phi =
come back to GEO system by tvdhgeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
Suite
Rocotlib Coordinate Transformations Library V 1.8 - P. Robert - page 104/111
- 105F) LOCAL SPACECRAFT SYSTEMS TRANSFORMATIONS ======================================== # 15 19 21 -21 -19 -15 GEO -> GSE -> SR2 -> SR -> SR2 -> GSE -> GEO input choosed test vector in GEO system : X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000
input choosed spin axis in GSE system : X= Y= Z= 0.34202 0.06031 -1.96962 r = teta= phi = 2.00000 170.000 10.000
input choosed Spin frequency, Spin phase, dt: Spin frequency= Spin phase = delta T = 0.2500 Hz 30.0000 deg. 1.2345 sec.
15) converts GEO system to GSE system by tgeogse X= Y= Z= 19) converts GSE system to SR2 0.09996 0.57634 4.96567 r = teta= phi = 5.00000 6.718 80.160
system by tgsesr2 X= Y= Z= 0.94425 -0.72804 -4.85575 r = teta= phi = 5.00000 166.204 -37.633
system to SR
system by tsr2sre X= Y= Z= -0.57328 -1.04547 -4.85575 r = teta= phi = 5.00000 166.204 -118.738
-21) converts SR system to SR2 system by tsresr2 X= Y= Z= 0.94425 -0.72804 -4.85575 r = teta= phi = 5.00000 166.204 -37.633
-19) converts SR2 system to GSE system by tsr2gse X= Y= Z= 0.09996 0.57634 4.96567 r = teta= phi = 5.00000 6.718 80.160
-15) converts GSE system to GEO system by tgsegeo X= Y= Z= 1.25000 2.16506 4.33013 r = teta= phi = 5.00000 30.000 60.000 0.000 1.00000 (deg.)
- 106-
Calendar subroutines :
module cdatdoy cdatj00 cdatj50 cdatwee cdoweek cdoyear cfrdayn cfrmonn chouday cjd1950 cjd2000 cmilday cnbdmon coleapy ctimhou ctimmil cusdayn cusmonn cweedoy arguments (idoy,iyear,imonth,iday) (jd00,iyear,imonth,iday) (jd50,iyear,imonth,iday) (iweek,iyear,imonth,iday) (iyear,imonth,iday,idow) (iyear,imonth,iday,idoy) (iday,cday,nbcha) (imonth,cmonth,nchar) (ih,im,is,houday) (iyear,imonth,iday,jd50) (iyear,imonth,iday,jd00) (ih,im,is,ims,milday) (iyear,imonth,nbday) (iyear,ileap) (houday,ih,im,is) (milday,ih,im,is,ims) (iday,cday,nbcha) (imonth,cmonth,nchar) (iyear,imonth,iday,iweek) object compute_date_from_day_of_year and for a given year compute_date_from_julian_day_2000 with jd00=0 for jan. 1 compute_date_from_julian_day_1950 with jd50=0 for jan. 1 compute_date_for_first_day_of_week_number compute_day_of_the_week compute_day_of_year with idoy=1 for january 1 compute_french_day_name, ex: 'Lundi' for iday=1 compute_French_month_name compute_hour_of_day from hours, minutes, seconds compute_julian_day_1950 with jd50=0 for january 1, 1950 compute_julian_day_2000 with jd00=0 for january 1, 2000 compute_millisec_of_day from hours, minutes, seconds, ms compute_number_of_day_of_the_month compute_leap_year with ileap=1 for leap year, 0 if not compute_time from decimal hour of the day compute_time from millisec. of the day compute_US_day_name, ex: 'Monday' for iday=1 compute_US_month_name compute_week_of_the_year
position
97 155 179 225 415 453 503 537 577 598 638 670 691 731 1047 1079 1442 1476 1514
Give subroutines :
module gdipdir gdiptan gecldir gsrodir gsundir gsunpar gvernum arguments (dxgei,dygei,dzgei,dxgeo,dygeo,dzgeo) (diptan) (exgei,eygei,ezgei,exgeo,eygeo,ezgeo) (rxgei,rygei,rzgei,rxgeo,rygeo,rzgeo) (sxgei,sygei,szgei,sxgeo,sygeo,szgeo) (gmst,slon,sras,sdec,obli) (vernum,verdat) object give_dipole_direction in GEI and GEO system give_dipole_tilt_angle in radians give_ecliptic_direction in GEI and GEO system give_sun_rotation_direction in GEI and GEO system give_sun_direction in GEI and GEO system give_sun_parameter dependant of time in GEI system give_version_number and modification date of the library
position
Transformation subroutines :
module tcarsph tdmegeo tgeigeo tgeigse tgeigsm tgeigsq tgeimag tgeisma tgeodme tgeogei tgeogse tgeogsm tgeogsq tgeomag tgeosma tgeovdh tgsegei tgsegeo tgsegsm tgsegsq tgsesr2 tgsmgei tgsmgeo tgsmgse tgsmgsq tgsmmag tgsmsma tgsqgei tgsqgeo tgsqgse tgsqgsm tmaggei tmaggeo tmaggsm tmagsma tsmagei tsmageo tsmagsm tsmamag tsphcar tsr2gse tsr2mfa tsr2sre arguments (x,y,z,r,teta,phi) (xdme,ydme,zdme,rlat,rlong,xgeo,ygeo,zgeo) (xgei,ygei,zgei,xgeo,ygeo,zgeo) (xgei,ygei,zgei,xgse,ygse,zgse) (xgei,ygei,zgei,xgsm,ygsm,zgsm) (xgei,ygei,zgei,xgsq,ygsq,zgsq) (xgei,ygei,zgei,xmag,ymag,zmag) (xgei,ygei,zgei,xsma,ysma,zsma) (xgeo,ygeo,zgeo,rlat,rlong,xdme,ydme,zdme) (xgeo,ygeo,zgeo,xgei,ygei,zgei) (xgeo,ygeo,zgeo,xgse,ygse,zgse) (xgeo,ygeo,zgeo,xgsm,ygsm,zgsm) (xgeo,ygeo,zgeo,xgsq,ygsq,zgsq) (xgeo,ygeo,zgeo,xmag,ymag,zmag) (xgeo,ygeo,zgeo,xsma,ysma,zsma) (xgeo,ygeo,zgeo,rlat,rlong,xvdh,yvdh,zvdh) (xgse,ygse,zgse,xgei,ygei,zgei) (xgse,ygse,zgse,xgeo,ygeo,zgeo) (xgse,ygse,zgse,xgsm,ygsm,zgsm) (xgse,ygse,zgse,xgsq,ygsq,zgsq) (xgse,ygse,zgse,rotx,roty,rotz,xsr2,ysr2,zsr2) (xgsm,ygsm,zgsm,xgei,ygei,zgei) (xgsm,ygsm,zgsm,xgeo,ygeo,zgeo) (xgsm,ygsm,zgsm,xgse,ygse,zgse) (xgsm,ygsm,zgsm,xgsq,ygsq,zgsq) (xgsm,ygsm,zgsm,xmag,ymag,zmag) (xgsm,ygsm,zgsm,xsma,ysma,zsma) (xgsq,ygsq,zgsq,xgei,ygei,zgei) (xgsq,ygsq,zgsq,xgeo,ygeo,zgeo) (xgsq,ygsq,zgsq,xgse,ygse,zgse) (xgsq,ygsq,zgsq,xgsm,ygsm,zgsm) (xmag,ymag,zmag,xgei,ygei,zgei) (xmag,ymag,zmag,xgeo,ygeo,zgeo) (xmag,ymag,zmag,xgsm,ygsm,zgsm) (xmag,ymag,zmag,xsma,ysma,zsma) (xsma,ysma,zsma,xgei,ygei,zgei) (xsma,ysma,zsma,xgeo,ygeo,zgeo) (xsma,ysma,zsma,xgsm,ygsm,zgsm) (xsma,ysma,zsma,xmag,ymag,zmag) (r,teta,phi,x,y,z) (xsr2,ysr2,zsr2,rotx,roty,rotz,xgse,ygse,zgse) (xsr2,ysr2,zsr2,bx,by,bz,rox,roy,roz,xm,ym,zm) (xsr2,ysr2,spifre,spipha,deltaT,xsre,ysre) object transforms_car_to_sph: transforms_dme_to_geo: transforms_gei_to_geo: transforms_gei_to_gse: transforms_gei_to_gsm: transforms_gei_to_gsq: transforms_gei_to_mag: transforms_gei_to_sma: transforms_geo_to_dme: transforms_geo_to_gei: transforms_geo_to_gse: transforms_geo_to_gsm: transforms_geo_to_gsq: transforms_geo_to_mag: transforms_geo_to_sma: transforms_geo_to_vdh: transforms_gse_to_gei: transforms_gse_to_geo: transforms_gse_to_gsm: transforms_gse_to_gsq: transforms_gse_to_sr2: transforms_gsm_to_gei: transforms_gsm_to_geo: transforms_gsm_to_gse: transforms_gsm_to_gsq: transforms_gsm_to_mag: transforms_gsm_to_sma: transforms_gsq_to_gei: transforms_gsq_to_geo: transforms_gsq_to_gse: transforms_gsq_to_gsm: transforms_mag_to_gei: transforms_mag_to_geo: transforms_mag_to_gsm: transforms_mag_to_sma: transforms_sma_to_gei: transforms_sma_to_geo: transforms_sma_to_gsm: transforms_sma_to_mag: transforms_sph_to_car: transforms_sr2_to_gse: transforms_sr2_to_mfa: transforms_sr2_to_sre: CAR DM GEI GEI GEI GEI GEI GEI GEO GEO GEO GEO GEO GEO GEO GEO GSE GSE GSE GSE GSE GSM GSM GSM GSM GSM GSM GSEQ GSEQ GSEQ GSQ MAG MAG MAG MAG SM SM SM SM SPH SR2 SR2 SR2 SPH GEO GEO GSE GSM GSEQ MAG SM DM GEI GSE GSM GSEQ MAG SM VDH GEI GEO GSM GSEQ SR2 GEI GEO GSE GSQ MAG SM GEI GEO GSE GSM GEI GEO GSM SM GEI GEO GSM MAG CAR GSE MFA SRef. system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system system
position
2070 2113 2161 2187 2214 2241 2268 2295 2322 2369 2395 2422 2449 2476 2503 2530 2575 2602 2629 2655 2681 2730 2755 2784 2810 2832 2854 2880 2907 2934 2960 2982 3009 3036 3058 3084 3111 3138 3164 3190 3215 3263 3332
- 108tsresr2 tvdhgeo (xsre,ysre,spifre,spipha,deltaT,xsr2,ysr2) (xvdh,yvdh,zvdh,rlat,rlong,xgeo,ygeo,zgeo) transforms_sre_to_sr2: transforms_vdh_to_geo: SRef VDH SR2 GEO system system 3369 3406
1785
- 109-
Bibliography
[1] Geophysical coordinate transformations, C.T. Russell, cosmic electrodynamics, v.2, 184196, 1971. [2] CLUSTER Software Tools, Part 1 : Coordinate Transformation Library, Version 1.1, by Patrick Robert, CNRS-CNET/CRPE, Document de travail DT/CRPE/1231, Juillet 1993. [3] CLUSTER DATA PROCESSING, Transformation of a STAFF waveform into a Magnetic Field Aligned coordinate system, by Patrick Robert and C. de Villedary, Rapport interne CNRSUVSQ/CETP n RI-CETP/6/2000, Octobre 2000. [4] ROCOTLIB: a Coordinate Transformation Library for Solar-Terrestrial studies, Version 1.7, by Patrick Robert, Rapport interne CNRS-UVSQ/CETP n RI-CETP/02/2003, January 2003
- 110-
NOTES
__________
- 111-
NOTES
__________