Title: Spatial Reference Model Overview
1Spatial Reference Model Overview
- Its not just coordinate systems any more!
- http//www.sedris.org/srm.htm
- also
- 99F-SIW-183 Choosing a Coordinate Framework for
Simulations
2Outline
- Why?
- Review of Basic Terminology
- The SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
3Simulation Begins with a Location
- Defining and using a consistent spatial reference
framework is critical for MS interoperability - System models (men, material, )
- Environmental data, models, phenomena
4Why is a SRM Needed?
- Traditionally the MS community has not been
consistent in the treatment of models of the
earth and related spatial reference frames - Consistency is required for joint distributed
simulation in order to - achieve a reasonably level playing field, and
- to support meaningful Validation, Verification
Accreditation - A number of different ERMs are currently employed
and this affects - representation of the environment in simulations
authoritative data bases - dynamics formulations, both kinematics and
kinetics (movement) - acquisition modeling and processing
(inter-visibility) - Approximations in coordinate operations
(conversion transformation algorithms) made to
reduce processing time may introduce additional
inconsistencies - An SRM is needed to promote lossless and accurate
operations - A nomenclature inconsistency evolves when there
is no SRM - For example, how do these variables relate?
- Altitude, elevation, height, geodetic height,
ellipsoidal height, orthometric height, height
above sea level, height above mean sea level,
depth below MLLW, terrain height, pressure
altitude, temperature altitude, nap of the
earth, ...
5SRM Requirements
- Completeness
- Must include spatial reference frames in common
usage - Must tie those frames together into a common
model - Must educate the system developer
- E.g., Whats a horizontal datum? A vertical
datum? - Operation Accuracy
- Generally higher than required for non-simulation
systems - Typically better than 1 cm. up past
geosynchronous orbit - Performance
- Never fast enough!
- Many environmental data sets dominated by
location data - Therefore efficient interconversion key to
meeting 72 hour ready-to-run mandate - Federate costs for distributed simulation using
heterogeneous spatial reference frames can be
substantial (e.g., 20 or more)
6Outline
- Why?
- Review of Basic Terminology
- The SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
7Coordinates
- Coordinates are linear or angular quantities that
designate the position of a point in a reference
frame. - In the SEDRIS Data Representation Model (DRM),
they are represented as ltLocationgts. - Either ltLocation 3Dgt or ltLocation 2Dgt.
8Spatial Reference Frames
- Spatial Reference Frames serve to locate
coordinates in a multi-dimensional space
(generally either two- or three-dimensional).
They are specified in two parts - A geometric description (model) of a reference
object embedded in (and serving to orient) that
frame -- referred to as an Object Reference Model
(ORM) - An Earth Reference Model (ERM) is a special case
of an ORM - A Coordinate System specifying how a tuple of
values uniquely determine a location with respect
to the origin of that frame. By extension, that
tuple also specifies a location with respect to
the reference object. - SRF ORM CS
There are no naked coordinate systems (in
SEDRIS).
9Named SRFs in SEDRIS
10SRF Example
- A common spatial reference frame is a combination
of a - Specification of the Earth Reference Model (ERM)
(e.g., an ellipsoid with specific parameters),
and a - Right-handed Cartesian coordinate system in a
specific relationship to the center or origin,
and rotational plane (equator) and axis of the
ERM.
One specific binding of (1) a right-handed
Cartesian coordinate system to (2) the rotational
plane (equator), prime meridian, and rotational
axis (via the north pole) of an ERM. Point P is
then a location defined with respect to that
coordinate system.
11Coordinates Coordinate Systems
- Coordinates are linear or angular quantities that
designate the position of a point within a
coordinate system. By extension, they also
designate the position of a point within a
spatial reference frame. - Coordinate Systems are a collection of rules by
which a tuple of values may be used to spatially
relate a location to a unique (coordinate system)
origin location. - Cartesian Coordinate Systems are based on an
ordered set of mutually perpendicular axes formed
by straight lines. The point of intersection of
the axes is termed the origin. The directions of
successive axes are normally related to each
other by a right hand rule. - Cartesian Coordinates (two-dimensional) uniquely
locate points on a plane using a doublet of
values, e.g., (x, y). - Cartesian Coordinates (three-dimensional)
uniquely locate points within a volume using a
triplet of values, e.g. (x, y, z).
12ERMs
- Topographic Surface is the interface between the
solid and liquid/gas portions of the Earth. It
corresponds to the surface of the land and the
floor of the ocean.
- Earth Reference Model (ERM) is a specification of
the mathematical shape of the Earth, usually in
terms of a combination of ellipsoidal and
equipotential (geoidal) surfaces. It excludes
the topographic surface, and therefore generally
corre-sponds with mean sea level.
In the SRM, there is no Earth there are only
models of the Earth.
13ORMs
- Since the Earth is an important reference
object in our spatial environment, many Spatial
Reference Frames will consist of an Earth
Reference Model plus a Coordinate System. - There are spatial reference frames which
incorporate models of alternative reference
objects - E.g., a spacecraft body-centric reference as
often used with the Space Shuttle, or a non-Earth
planetary body, or even a celestial body - Local Space Rectangular (LSR) uses a minimalist
ORM which does not locate the CS origin, but
orients the axes through specification of up
and forward and a right-hand rule - In general SRF ORM CS
- Commonly SRF ERM CS
14Many SRFs
- There is a potentially infinite set of spatial
reference frames based on the same Cartesian
coordinate system with the same relationships to
an ERM, but with differing ERMs. - E.g., as defined by different ellipsoidal models
- Or which may share a common ERM, but which have
different relationships between the Cartesian
coordinate system and the ERM. - E.g., Geocentric (GC) and Local Tangent Plane
(LTP) - Each of these spatial reference frames is unique,
unambiguous, and can be exactly related to the
others. - And each has a customer-base for whom it is the
preferred (only?) choice ...
15Spatial Reference Model
- Spatial Reference Model is a well-defined set of
- object reference models, and
- coordinate systems, composed into
- spatial reference frames,
- that allows coordinates (and related concepts,
such as vectors) to be specified succinctly, and - converted accurately between different spatial
reference frames.
The degree of accuracy (and performance)
required is generally application-dependent.
16 SRM Refresher
Earth Referenced, Projection-based 2D and 3D SRFs
Earth Referenced 3D (and 2D) SRFs
GCS
Geocentric (ECEF)
Geodetic (3D and 2D)
With and without Augmentation
Geomagnetic Geocentric Equatorial
Inertial Geocentric Solar Ecliptic Geocentric
Solar Magnetospheric Solar Magnetic
17Outline
- Why?
- Review of Basic Terminology
- The SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
18Coordinate Operations
- Coordinate Conversion is the process of
determining the equivalent spatial location of a
point in a SRF which is based on the same object
reference model (e.g., ERM), but a different
coordinate system. - Coordinate Transformation is the process of
determining the equivalent spatial location of a
point in a SRF which is based on the same
coordinate system, but a different object
reference model (e.g., ERM). - Converting coordinates between two arbitrary
Spatial Reference Frames may require both
Coordinate Conversion and Coordinate
Transformation.
19Types of Operation Errors
- Formulation (Algorithmic) Errors Inherent in
optimized algorithms for coordinate operations
where accuracy may be traded for performance. - Implementation Errors Includes errors due to
finite precision arithmetic and software
implementation. - Usage Errors Includes errors due to extension of
projection-based SRFs beyond reasonable limits. - Where coordinate operations with respect to an
alternative SRF are required.
20Coordinate Operations affectGeometrical
Relationships
- The taxonomy for classifying mathematical
transformations is complex and there are a lot of
types - isometric, linear, bi-linear, conformal,
orthogonal, affine, isomorphic, ... - For SEDRIS, two classifications are sufficient
for operations associated with earth referenced
spatial reference frames - Geometry Preserving Transformations (GPT) That
class of conversions/transformations between
spatial reference frames that do not distort
geometrical relationships. - Geometry Distorting Transformations (GDT) That
class of conversions/transformations between
spatial reference frames that distort some
geometrical relationships.
21SRF Operation Relationships
Operations between map projections and these are
GDT.
Operations among earth referenced 3D systems are
GPT.
Map projection-based
GCS
Local Tangent Plane
Geocentric (ECEF)
Geodetic
With and without Augmentation
Geomagnetic Geocentric Equatorial
Inertial Geocentric Solar Ecliptic Geocentric
Solar Magnetospheric Solar Magnetic
223D Projection-based SRFs
These result in augmented map projection-based
spatial reference frames.
Ellipsoidal ERM
Spherical ERM
23Geometric Distortions
- Distortion caused by Projection Inherent in the
use of 2D projection-based SRFs, where the
distortion varies non-linearly with distance from
the line(s) or point of projection. - Distance (on the surface of the ERM)
- Azimuth
- Distortion caused by Augmentation Inherent in
the extension of projection-based 2D SRFs to 3D
SRFs, where the distortion varies non-linearly
with both elevation and distance from the line(s)
or point of projection. - Distance (with respect to altitude)
- Elevation Angle
24Distance and Elevation Angle
N
Note that the red points do not map
s
s
s
s
Distance is distorted by the projection
Z
X
An augmented projection produces another 2D
system. Note that there are now two distortions
with respect to the original rectangular system.
This process can be extended to the 3D case but
even if the projection is conformal, elevation
angles are distorted by the augmentation.
25Azimuth
- Transverse Mercator SRF
- In geodetic coordinates the origin is at (0,
-p/2, 0) - The longitude of the origin is shown as 90º W
- And were all familiar with Rhumb lines
(loxodromes), and great circle distances ...
From N. Bowditch, American Practical
Navigator, U.S. Navy Hydrographic Office, 1966
Ed.
26Convergence of the Meridian
Consider any conformal map projection P is a
given location in the projected system The
central meridian appears as a straightline (the
y axis) Generally other meridians are
curved(an exception is the Mercator
projection) T is the tangent line to the
meridian at P is the Convergence of the
Meridian The convergence of the meridian is the
anglebetween SRF North and true North onthe
source ORM/ERM (positive clockwise).
The formula for computing the convergence of the
meridianranges from very simple (0 for the
Mercator-based SRFs)to very complex for TM.
27Flattening the ERMDistance and Geometry
- Augmented UTM (AUTM) example
- Several distortions are introduced, especially at
the higher latitudes.
The results of such elevation angle and range
distortions may not be so apparent when all
simulations involved use AUTM. However, in a
federation involving real world coordinate
systems the distortions may become evident. Use
of AUTM increases visibility, causes interactions
to prosecute too fast, leads to an uneven playing
field and is not recommended for use in joint
simulations.
28Outline
- Why?
- Review of Basic Terminology
- SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
29Valid Coordinates
- Coordinates, and operations on coordinates, are
characterized as being of three types - Exact, in which the coordinate falls within the
well-defined extents of a SRF. - Extended, in which the coordinate falls outside
of the well-defined extents of a SRF, but falls
within a well-defined extended bound for which
GDT errors have been well-defined. - Extended coordinates are supported by the SRM
implementation, however a warning will be issued
each time one is input or output. - Invalid, in which the coordinate falls outside of
the extended bound. - Invalid coordinates will not be supported by the
SRM checked implementation either as input
coordinates or as output coordinates. The exact
extents of invalid are specified for each SRF.
30Coordinate Validity
- ltLocationgts may then be referred to as being
- ? valid extended invalid with respect
to their native SRFs, as well as being - ? valid extended invalid with respect
to another SRF. - E.g., a GD coordinate in Britain
converted/transformed to the UTM Zone 17 SRF
would be invalid - ltLocationgts may thus be
- ? valid in the context of the SRF of a
Unified Environment created by a Data Provider,
but - ? invalid in the context of a SRF specified by
a Data Consumer.
31Implementation Details (1 of 2)
- The scope of exact (valid) and extended
coordinate operations is documented in the SRM,
and implemented in the form of a SRM check
utility for use by data providers,
transmittal-check applications, and data
consumers. - Data Providers may use this SRM check utility
in the process of preparing a SEDRIS Unified
Environment in order to determine whether any
ltLocationgts in the source database violate either
the exact (valid) or extended bounds of a SRF
(either that of the Unified Environment, or that
of another SRF). - The Unified Environment may still be created
using these ltLocationgts (as is currently the
case) -- no checking will occur as the
ltLocationsgts are written to the transmittal.
Definitions in-progress
32Implementation Details (2 of 2)
- Transmittal Validators may use this SRM check
utility to determine whether a Unified
Environment contains ltLocationgts which are either
Extended or Invalid with respect to the SRF of
the Unified Environment, or some other SRF. - Data Consumers will continue to receive
unrestricted ltLocationgts from a Unified
Environment where the access remains in the SRF
of that Unified Environment. - Where the Data Consumer specifies an alternative
SRF, this SRM check utility will be brought
into play and Extended, and Invalid, errors will
be appropriately reported as Unified Environment
ltLocationgts are accessed. - Direct use of the SRM API will continue to allow
applications to accomplish either checked or
unchecked operations on SRFs.
33Range Extension (1 of 2)
- It will be possible to specify that a coordinate
should be converted to a specific target SRF,
even if in that target SRF the coordinate would
be characterized as Extended. - For ltLocationgts in GD being converted to any
projection-based SRF, the preceding definitions
inherently result in range extension. - The data consumer necessarily forces a specific
(e.g., zoned UTM) SRF at the time of specifying
their retrieval SRF. - Thus, if the UTM Zone 17 SRF is selected as
target, with the source being GD, then attempts
to convert ltGD_Locationgts falling within the
extended bound (for which GDT errors have been
well-defined) will succeed with a warning
message. - Attempts outside the extended bound will (of
course) fail
34Range Extension (2 of 2)
- It will be possible, e.g., to take a GD SRF-based
Unified Environment and successively extract
appropriate portions of it containing - ltLocationgts specified with respect to the UTM
Zone 17 SRF, - ltLocationgts specified with respect to the UTM
Zone 18 SRF, - ltLocationgts specified with respect to the UTM
Zone 19 SRF - if the Unified Environment extends across all
three of these UTM SRFs. - The Data Consumer has the option to treat these
three successive data extractions as either - Exact (no ltLocationgts appear in more than one UTM
SRF), or - Overlapping (ltLocationgts in overlap regions
appear in two adjacent UTM SRFs), - depending on how they choose to handle the error
condition of Extended.
35Outline
- Why?
- Review of Basic Terminology
- SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
36ERM Horizontal Datums
- Two new ellipsoids
- EF Everest (Pakistan)
- ID Indonesian 1974
- Three datums with updated parameters
- INF-A Indian 1954 - applicable to Thailand
- INH-A Indian 1975 - applicable to Thailand
- TOY-B Tokyo - applicable to South Korea
- One replaced horizontal datum
- ARS Arc 1960 - MEAN FOR Kenya, Tanzania
- ARS-A Arc 1960 - applicable to Kenya
- ARS-B Arc 1960 - applicable to Tanzania
- ARS-M Arc 1960 - Mean Solution (Kenya
Tanzania) - 34 new horizontal datums
- See SCR MITRE-112B
37Standard ERM Ellipsoids
?
?
38Standard ERM Spheres
39Standard ERM Horizontal Datums
40ERM Vertical Datums
- Three new vertical datums
- EGM96 Earth Gravity Model of 1996 Geoid
- NAVD88 North American Vertical Datum of 1988
- NGVD29 National Geodetic Vertical Datum of 1929
- Previous vertical datums retained
- MSL Mean Sea Level
- WGS84E World Geodetic System of 1984 Ellipsoid
- WGS84G World Geodetic System of 1984 Geoid
- And eight spheres of varying radii
41Standard ERM Vertical Datums
42ERM Datum Transformations
- Horizontal Datums
- Still no transformation support
- Planning for 3-parameter Molodensky
implementation - Vertical Datums
- WGS-84 Geoidal separation now calculated (scalar)
- MSL and WGS84G are treated as identical
- Transformations now supported for
- WGS84E ? WGS84G
- WGS84E ? MSL
- Automatically loads full ERM data ( 10 MB)
- Ellipsoids/datums definitions, and associated
transformations based on - Department of Defense World Geodetic System
1984, National Imagery and Mapping Agency, Third
Edition, TR8350.2, 1997.
43Init WGS84 Geoidal Separation
extern SE_COORD_STATUS_CODE_ENUM
SE_InitializeWGS84GeoidalSeparation ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_ptr )
- Reads WGS84 geoid separation data from a
specified file (environment variable) creates
in-memory array - SE_COORD_MISSING_WGS84_GEOID_SEPARATION_FILE
- If the separation file can not be found or
accessed - SE_COORD_INVALID_WGS84_GEOID_SEPARATION_FILE
- If the separation file is incomplete or
improperly formatted - SE_COORD_SUCCESS
- Otherwise
- Currently (re)loads stores for each Initialize
call
44Get WGS84 Geoidal Separation
extern SE_COORD_STATUS_CODE_ENUM
SE_GetWGS84GeoidalSeparation ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_
ptr, const SE_GD_2D_COORD WGS84GeodeticLoc
ation, SE_FLOAT64 GeoidalSeparation
)
- Separation (metres) height of WGS84 geoid
minus height of WGS84 ellipsoid - SE_COORD_SUCCESS
- SE_COORD_FAILURE
- Scalar, not Vector
- Free using SE_FreeCoordConversionConstants
45Outline
- Why?
- Review of Basic Terminology
- SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
46SRFs
- 151 distinct SRFs supported by DRM, either as
subclass of ltLocation 2Dgt or ltLocation 3Dgt - LSR LSR2
- GC (3D)
- GD GD2
- LTP LTP2
- GCS (3D)
- Projection-based 2D
- M, OM, TM, LCC, PS 12, EC
- UTM 160 UPS 1...2
- Augmented projection-based 3D
- AM, AOM, ATM, ALCC, APS 12, AEC
- AUTM 160 AUPS 12
- Inertial quasi-inertial
- GM, GEI, GSE, GSM, SM
47 SRFs Supported
GCS
Spherical ERM Only
Geocentric (ECEF)
Geodetic (3D and 2D)
With and without Augmentation
Geomagnetic Geocentric Equatorial
Inertial Geocentric Solar Ecliptic Geocentric
Solar Magnetospheric Solar Magnetic
Spherical ERM Only
48SRFs with CS Origin Offsets
- Almost all projection-based SRFs (2D 3D)
- M
- OM
- TM
- UTM
- EC
- LCC
- PS
- UPS (not supported no current requirement)
- Topocentric SRFs
- LTP
- GCS
Not Offset of Projection Origin
49Local Space Rectangular
SRM_LSR_Coordinate struct SRM_FLOAT64 x
// meters, unless used in unitless Model
SRM_FLOAT64 y // meters, unless used in unitless
Model SRM_FLOAT64 z // Elevation or height,
unless used in unitless Model
// positive along XY surface normal
SRM_LSR_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_DIRECTION_OF_UP_ENUM up_direction
SRM_DIRECTION_OF_FORWARD_ENUM forward_direction
// Specification of
Projection Basis // Not Applicable //
Origin of Coordinate System // Not
Applicable // Origin Displacement of
Coordinate System // Not
Applicable SRM_Direction_Of_Up_ENUM enum
SRM_Direction_Of_Up_Positive_Primary_Axis
SRM_Direction_Of_Up_Positive_Secondary_Axis
SRM_Direction_Of_Up_Positive_Tertiary_Axis
SRM_Direction_Of_Up_Negative_Primary_Axis
SRM_Direction_Of_Up_Negative_Secondary_Axis
SRM_Direction_Of_Up_Negative_Tertiary_Axi
s
50Local Space Rectangular (2D)
SRM_LSR2_Coordinate struct SRM_FLOAT64 x
// meters, unless used in unitless Model
SRM_FLOAT64 y // meters, unless used in unitless
Model
SRM_EC_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_DIRECTION_OF_FORWARD_ENUM forward_direction
// Specification of
Projection Basis // Not Applicable //
Origin of Coordinate System // Not
Applicable // Origin Displacement of
Coordinate System // Not
Applicable SRM_Direction_Of_Forward_ENUM
enum SRM_Direction_Of_Forward_Positive_Pri
mary_Axis SRM_Direction_Of_Forward_Positiv
e_Secondary_Axis SRM_Direction_Of_Forward_
Positive_Tertiary_Axis SRM_Direction_Of_Fo
rward_Negative_Primary_Axis
SRM_Direction_Of_Forward_Negative_Secondary_Axis
SRM_Direction_Of_Forward_Negative_Tertiary_
Axis
51Geocentric
SRM_GC_Coordinate struct SRM_FLOAT64 x
// meters positive towards Prime Meridian
// in equatorial plane origin at
mass-center SRM_FLOAT64 y // meters
positive towards 90 degrees east
// of Prime Meridian in equatorial plane
// origin at mass-center
SRM_FLOAT64 z // meters positive northwards
along rotational axis
// origin at mass-center
SRM_EC_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Specification of Projection Basis // Not
Applicable // Origin of Coordinate System
// WGS84 Ellipsoid Origin (mass center)
// Origin Displacement of Coordinate System
// Not Applicable
52Geodetic
SRM_GD_Coordinate struct SRM_FLOAT64
geodetic_longitude // degrees SRM_FLOAT64
geodetic_latitude // degrees SRM_FLOAT64
elevation // Elevation or height
positive //
"outwards" along the direction
// normal to the
ORM/ERM
SRM_GD_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis // Not
Applicable // Origin of Coordinate System
// Prime Meridian Equator //
Coordinate System Units SRM_DISTANCE_UNITS_
ENUM z_units // feet or meters
// Origin Displacement of Coordinate
System // Not Applicable
53Geodetic (2D)
SRM_GD2_Coordinate struct SRM_FLOAT64
geodetic_longitude // degrees
SRM_FLOAT64 geodetic_latitude
// degrees
SRM_GD2_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM
horizontal_datum // Specification of
Projection Basis // Not Applicable //
Origin of Coordinate System // Prime
Meridian Equator // Origin Displacement of
Coordinate System // Not Applicable
54Local Tangent Plane
SRM_LTP_Coordinate struct SRM_FLOAT64 x
// meters positive eastward (when azimuth equal
zero) SRM_FLOAT64 y // meters positive
northward (when azimuth equal zero)
SRM_FLOAT64 z // Elevation or height positive
along XY surface normal
SRM_LTP_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis // Not
Applicable // Origin of Coordinate System
SRM_FLOAT64 geodetic_longitude // degrees
SRM_FLOAT64 geodetic_latitude // degrees
SRM_FLOAT64 azimuth // angle, in arc
degrees, positive clockwise,
// from geographic north to the
direction // of the
positive Y axis // Coordinate System Units
SRM_DISTANCE_UNITS_ENUM z_units // feet or
meters // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X SRM_FLOAT64
y_offset // origin relative displacement in Y
55Local Tangent Plane (2D)
SRM_LTP2_Coordinate struct SRM_FLOAT64 x
// meters positive eastward (when azimuth equal
zero) SRM_FLOAT64 y // meters positive
northward (when azimuth equal zero)
SRM_LTP2_Parameters struct //
Specification of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis //
Not Applicable // Origin of Coordinate
System SRM_FLOAT64 geodetic_longitude //
degrees SRM_FLOAT64 geodetic_latitude //
degrees SRM_FLOAT64 azimuth // angle, in
arc degrees, positive clockwise,
// from geographic north to
the direction // of
the positive Y axis // Origin Displacement
of Coordinate System SRM_FLOAT64 x_offset
// origin relative displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y
56GCS
SRM_GCS_Coordinate struct SRM_UINT16
cell_ID SRM_FLOAT64 x // meters positive
eastward SRM_FLOAT64 y // meters positive
northward SRM_FLOAT64 z // meters
Elevation or height //
positive along XY surface normal
SRM_GCS_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Specification of Projection Basis // Not
Applicable // Origin of Coordinate System
// Defined by Cell ID // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
57Mercator
SRM_M_Coordinate struct SRM_FLOAT64 x //
meters positive eastward SRM_FLOAT64 y //
meters positive northward
SRM_M_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_FLOAT64 geodetic_longitude // degrees
specifying the meridian
// of the Y axis (positive
northwards) SRM_FLOAT64 central_scale_facto
r // unitless normally close to (lt)1.0 //
Origin of Coordinate System // Equator
// Origin Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
58Augmented Mercator
SRM_AM_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_AM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis
SRM_FLOAT64 geodetic_longitude // degrees
specifying the meridian
// of the Y axis (positive
northwards) SRM_FLOAT64 central_scale_facto
r // unitless normally close to (lt)1.0
// Origin of Coordinate System //
Equator // Coordinate System Units
SRM_DISTANCE_UNITS_ENUM z_units // feet or
meters // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X SRM_FLOAT64
y_offset // origin relative displacement in Y
59Oblique Mercator
SRM_OM_Coordinate struct SRM_FLOAT64 x
// meters positive "rightwards" of y axis
SRM_FLOAT64 y // meters positive in direction
from parametric //
location 1 to parametric location 2
SRM_OM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_FLOAT64 geodetic_latitude1 // degrees
defines X origin SRM_FLOAT64
geodetic_longitude1 // degrees defines Y
origin SRM_FLOAT64 geodetic_latitude2
// degrees SRM_FLOAT64 geodetic_longitude2
// degrees SRM_FLOAT64
central_scale_factor // unitless normally close
to (lt)1.0 // Origin Displacement of
Coordinate System SRM_FLOAT64 x_offset //
origin relative displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y
60Augm. Oblique Mercator
SRM_AOM_Coordinate struct SRM_FLOAT64 x
// meters positive "rightwards" of y axis
SRM_FLOAT64 y // meters positive in direction
from parametric //
location 1 to parametric location 2
SRM_FLOAT64 z // Elevation or height positive
along XY surface normal
SRM_AOM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis
SRM_FLOAT64 geodetic_latitude1 // degrees
defines X origin SRM_FLOAT64
geodetic_longitude1 // degrees defines Y
origin SRM_FLOAT64 geodetic_latitude2
// degrees SRM_FLOAT64 geodetic_longitude2
// degrees SRM_FLOAT64
central_scale_factor // unitless normally close
to (lt)1.0 // Coordinate System Units
SRM_DISTANCE_UNITS_ENUM z_units // feet or
meters // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X SRM_FLOAT64
y_offset // origin relative displacement in Y
61Transverse Mercator
SRM_TM_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward
SRM_TM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_FLOAT64 geodetic_latitude // degrees used
to define origin SRM_FLOAT64
geodetic_longitude // degrees specifying the
//
meridian of the positive Y axis
// (which is positive
northwards) SRM_FLOAT64 central_scale_facto
r // unitless normally close to (lt) 1.0
// Origin Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
62Augm. Transverse Mercator
SRM_ATM_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_ATM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis
SRM_FLOAT64 geodetic_latitude // degrees used
to define origin SRM_FLOAT64
geodetic_longitude // degrees specifying the
//
meridian of the positive Y axis
// (which is positive
northwards) SRM_FLOAT64 central_scale_facto
r // unitless normally close to (lt) 1.0
// Coordinate System Units
SRM_DISTANCE_UNITS_ENUM z_units // feet or
meters // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X SRM_FLOAT64
y_offset // origin relative displacement in Y
63Universal Transverse Mercator
SRM_UTM_Coordinate struct
SRM_HEMISPHERE_ENUM hemisphere SRM_FLOAT64
x // meters positive eastward
SRM_FLOAT64 y // meters positive
northward
SRM_UTM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_UINT8 zone // 1 60 // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y SRM_Hemisphere_ENUM enum
SRM_NORTHERN_HEMISPHERE SRM_SOUTHERN_HEMISPHER
E
64Augm. Univ. Transverse Mercator
SRM_AUTM_Coordinate struct
SRM_HEMISPHERE_ENUM hemisphere SRM_FLOAT64
x // meters positive eastward
SRM_FLOAT64 y // meters positive northward
SRM_FLOAT64 z // Elevation or height
positive along XY surface normal
SRM_AUTM_Parameters struct //
Specification of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum
// Specification of Projection Basis
SRM_UINT8 zone // 1 60 //
Coordinate System Units SRM_DISTANCE_UNITS_
ENUM z_units // feet or meters // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y
65Lambert Conformal Conic
SRM_LCC_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward
SRM_LCC_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Standard Parallels SRM_FLOAT64
north_parallel_geodetic_latitude // degrees
SRM_FLOAT64 south_parallel_geodetic_latitude //
degrees // Origin of Rectangular
Coordinates SRM_FLOAT64 geodetic_latitude
// degrees specifying the parallel
// of the X axis
positive eastwards SRM_FLOAT64
geodetic_longitude // degrees specifying the
meridian
// of the Y axis positive northwards //
Origin Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
66Augm. Lambert Conformal Conic
SRM_ALCC_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_ALCC_Parameters struct //
Specification of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum
// Standard Parallels SRM_FLOAT64
north_parallel_geodetic_latitude // degrees
SRM_FLOAT64 south_parallel_geodetic_latitude //
degrees // Origin of Rectangular
Coordinates SRM_FLOAT64 geodetic_latitude
// degrees specifying the parallel
// of the X axis
positive eastwards SRM_FLOAT64
geodetic_longitude // degrees specifying the
meridian
// of the Y axis positive northwards //
Coordinate System Units SRM_DISTANCE_UNITS_
ENUM z_units // feet or meters // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
67Polar Stereographic
SRM_PS_Coordinate struct SRM_FLOAT64 x
// meters SRM_FLOAT64 y // meters along
meridian defined by // the
applicable PS SRF parameters
SRM_PS_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_PS_POLE_ENUM pole // North or
South SRM_FLOAT64 geodetic_longitude //
degrees specifying the
// meridian of the positive Y
axis SRM_FLOAT64 central_scale_factor //
unitless normally close to (lt) 1.0 //
Origin Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in
Y SRM_PS_POLE_ENUM enum
SRM_North_Pole SRM_South_Pole
68Augm. Polar Stereographic
SRM_APS_Coordinate struct SRM_FLOAT64 x
// meters SRM_FLOAT64 y // meters along
meridian defined by // the
applicable PS SRF parameters SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_APS_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis
SRM_PS_POLE_ENUM pole // North or
South SRM_FLOAT64 geodetic_longitude //
degrees specifying the
// meridian of the positive Y
axis SRM_FLOAT64 central_scale_factor //
unitless normally close to (lt) 1.0 //
Coordinate System Units SRM_DISTANCE_UNITS_
ENUM z_units // feet or meters // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
69Universal Polar Stereographic
SRM_UPS_Coordinate struct SRM_FLOAT64 x
// meters SRM_FLOAT64 y // meters along
meridian defined by // the
applicable PS SRF parameters
SRM_UPS_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis
SRM_PS_POLE_ENUM pole // North or
South // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y SRM_PS_POLE_ENUM enum
SRM_North_Pole SRM_South_Pole
70Augm. Univ. Polar Stereographic
SRM_AUPS_Coordinate struct SRM_FLOAT64 x
// meters SRM_FLOAT64 y // meters along
meridian defined by // the
applicable PS SRF parameters SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_AUPS_Parameters struct //
Specification of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum
// Specification of Projection Basis
SRM_PS_POLE_ENUM pole // North or
South // Coordinate System Units
SRM_DISTANCE_UNITS_ENUM z_units // feet or
meters // Origin Displacement of Coordinate
System SRM_FLOAT64 x_offset // origin
relative displacement in X
SRM_FLOAT64 y_offset // origin relative
displacement in Y
71Equidistant Cylindrical
SRM_EC_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward
SRM_EC_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
// Specification of Projection Basis (standard
parallel) SRM_FLOAT64 geodetic_latitude
// degrees standard parallel and
// origin of the
projected X axis
// (which is positive northwards)
SRM_FLOAT64 central_scale_factor // unitless
normally close to (lt)1.0 // Origin of
Coordinate System SRM_FLOAT64
geodetic_longitude // degrees specifying the
meridian
// of the Y axis positive northwards) //
Origin Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
72Augm. Equidistant Cylindrical
SRM_AEC_Coordinate struct SRM_FLOAT64 x
// meters positive eastward SRM_FLOAT64 y
// meters positive northward SRM_FLOAT64 z
// Elevation or height positive along XY surface
normal
SRM_AEC_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_HORIZONTAL_DATUM_ENUM horizontal_datum
SRM_VERTICAL_DATUM_ENUM vertical_datum //
Specification of Projection Basis (standard
parallel) SRM_FLOAT64 geodetic_latitude
// degrees standard parallel and
// origin of the
projected X axis
// (which is positive northwards)
SRM_FLOAT64 central_scale_factor // unitless
normally close to (lt)1.0 // Origin of
Coordinate System SRM_FLOAT64
geodetic_longitude // degrees specifying the
meridian
// of the Y axis positive northwards) //
Coordinate System Units SRM_DISTANCE_UNITS_
ENUM z_units // feet or meters // Origin
Displacement of Coordinate System
SRM_FLOAT64 x_offset // origin relative
displacement in X SRM_FLOAT64 y_offset //
origin relative displacement in Y
73Geocentric Equatorial Inertial
SRM_GEI_Coordinate struct SRM_FLOAT64
right_ascension // in degrees of arc
SRM_FLOAT64 declination // in degrees of arc
SRM_FLOAT64 radius // distance from
the mass-center of the
// reference object non-negative in
meters
SRM_GEI_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Origin of Coordinate System // WGS84
Ellipsoid Origin (mass center) // Coordinate
System Orientation SRM_GEI_EPOCH_ENUM
epoch SRM_GEI_Epoch_ENUM enum
SRM_ATD_Epoch // Aries-True-of-Date
SRM_M50_Epoch
// Aries-Mean-of-1950 SRM_FK5_J2000_Epoch
// Aries-Mean-of-2000
74Geomagnetic
SRM_GM_Coordinate struct SRM_FLOAT64
gm_latitude // degrees SRM_FLOAT64
gm_longitude // degrees SRM_FLOAT64 radius
// distance from the mass-center of the
// reference object
non-negative expressed
// in units of ORM/ERM radius
SRM_GM_Parameters struct // Specification
of Object Reference Model (ORM)
SRM_FLOAT64 gm_radius // radius
of the reference object
// non-negative in meters // Origin
of Coordinate System // WGS84 Ellipsoid
Origin (mass center) // Coordinate System
Orientation SRM_UINT16 gm_epoch // epoch
definition in year Common Era
75Geocentric Solar Ecliptic
SRM_GSE_Coordinate struct SRM_FLOAT64
longitude // in degrees of arc SRM_FLOAT64
latitude // in degrees of arc SRM_FLOAT64
radius // distance from the mass-center of
the // reference
object non-negative in meters
SRM_GSE_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Origin of Coordinate System // WGS84
Ellipsoid Origin (mass center)
76Geocentric Solar Magnetic
SRM_GSM_Coordinate struct SRM_FLOAT64
longitude // in degrees of arc SRM_FLOAT64
latitude // in degrees of arc SRM_FLOAT64
radius // distance from the mass-center of
the // reference
object non-negative in meters
SRM_GSM_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Origin of Coordinate System // WGS84
Ellipsoid Origin (mass center)
77Solar Magnetic
SRM_SM_Coordinate struct SRM_FLOAT64
longitude // in degrees of arc SRM_FLOAT64
latitude // in degrees of arc SRM_FLOAT64
radius // distance from the mass-center of
the // reference
object non-negative in meters
SRM_SM_Parameters struct // Specification
of Object Reference Model (ORM)
// WGS84 Ellipsoid //
Origin of Coordinate System // WGS84
Ellipsoid Origin (mass center)
78Outline
- Why?
- Review of Basic Terminology
- SRM A Composition of ORMs, CSs, and SRFs
- Coordinate Operations and Geometry Distortion
- Valid, Extended, and Invalid Coordinates
- ORM/ERM Support Status
- SRF Support Status
- Operations Support Status
79 Op Support
To Be Discussed
GCS
Spherical ERM Only
Geocentric (ECEF)
Geodetic (3D and 2D)
With and without Augmentation
Geomagnetic Geocentric Equatorial
Inertial Geocentric Solar Ecliptic Geocentric
Solar Magnetospheric Solar Magnetic
Spherical ERM Only
80Coordinate Operation Chains
- All applicable (but potentially sub-optimally)
- LSR_LSR, LSR2_LSR2
- GCS_GC, GCS_GCS
- GC_LTP, GC_GCS, GC_GD, GC_GC
- LTP_GC, LTP_LTP
- GD_GC, GD_M, GD_OM, GD_TM, GD_UTM, GD_PS,
GD_UPS, GD_LCC, GD_EC, GD_GD - M_GD, M_M
- OM_GD, OM_OM
- TM_GD, TM_TM
- UTM_GD, UTM_UTM
- PS_GD, PS_PS
- UPS_GD, UPS_UPS
- EC_GD, EC_EC
- LCC_GD, LCC_LCC
- Interial/Quasi-Inertial
- GM_GM, GEI_GEI, GSE_GSE, GSM_GSM, SM_SM
- GC?, ?GC
Not yet supported
81Status Codes (1 of 3)
/ Return codes used by the SRM coordinate
operations (conversion, transformation, etc.). /
typedef enum SE_COORD_SUCCESS, /
Coordinate operation successful
/ SE_COORD_INVALID_SOURCE_SRF_PARAMETERS,
/ If the source spatial reference frame (SRF)
parameters are wrong, or the pointer is NULL
/ SE_COORD_INVALID_DEST_SRF_PARAMETERS, /
If the destination spatial reference frame
(SRF) parameters are wrong, or the pointer is
NULL / SE_COORD_INVALID_SRF_PAIR, / If the
merged sourcedestination spatial reference
frame (SRF) parameters ptr is NULL or invalid
/ SE_COORD_INVALID_SOURCE_COORD, / If the
source coordinate is NULL, or invalid within
the source spatial reference frame (SRF) /
82Status Codes (2 of 3)
SE_COORD_EXTENDED_SOURCE_COORD, / If the
coordinate falls within extended range in
source spatial reference frame (SRF)
/ SE_COORD_INVALID_DEST_COORD, / If the
destination coord is NULL, or invalid within
the destination SRF / SE_COORD_EXTENDED_DEST_C
OORD, / If the coordinate falls within
extended range in destination SRF
/ SE_COORD_EXTENDED_SOURCE_AND_DEST_COORD,
/ If the coordinate falls within extended range
in both the source and destination SRFs
/ SE_COORD_UNSUPPORTED, / If the operation
(conversion/transformation) is
unsupported / SE_COORD_FAILURE, /
Coordinate operation NOT successful /
83Status Codes (3 of 3)
SE_COORD_INVALID_SOURCE_VECTOR, / If the
source vector is NULL / SE_COORD_INVALID_DEST_VEC
TOR, / If the destination vector is NULL
/ SE_COORD_INVALID_SOURCE_MATRIX, / If the
source matrix is NULL / SE_COORD_INVALID_DEST_MAT
RIX, / If the destination matrix is NULL
/ SE_COORD_INVALID_DEST_COSINE_GAMMA, / If
the destination cosine gamma is NULL
/ SE_COORD_INVALID_DEST_SINE_GAMMA, / If
the destination sine gamma is NULL
/ SE_COORD_MISSING_WGS84_GEOID_SEPARATION_FILE,
/ If the WGS84 geoid separation file
cannot be found or opened for reading
/ SE_COORD_INVALID_WGS84_GEOID_SEPARATION_FILE,
/ If the WGS84 geoid separation file is
damaged / SE_COORD_STATUS_CODE_ENUM
84Interface Specification(s)
- Controlling the retrieval Spatial Reference Frame
- SE_GetSRFParameters
- SE_UseDefaultSRFParameters
- SE_SetSRFParameters
- Initialization of Spatial Reference Frame
parameters - SRM_CreateCoordinateOperationsConstants
- Convert a coordinate
- SRM_ApplyOperationToCoordinate
- SRM_ApplyOperationToCoordinateUnchecked
- Free Spatial Reference Frame parameters
- SRM_FreeCoordinateOperationsConstants
For use within the SEDRIS Read API
For use independent of the SEDRIS Read API
85Operation Setup
extern SE_COORD_STATUS_CODE_ENUM
SE_CreateCoordConversionConstants ( const
SE_SRF_PARAMETERS src_srf_ptr, const
SE_SRF_PARAMETERS dest_srf_ptr,
SE_CONVERT_COORD_SYSTEM_PAIR convert_coord_s
ystem_ptr) )
- SE_COORD_INVALID_SOURCE_SRF_PARAMETERS
- SE_COORD_INVALID_DEST_SRF_PARAMETERS
- SE_COORD_INVALID_SRF_PAIR
- SE_COORD_SUCCESS
- SE_COORD_UNSUPPORTED
- SE_COORD_FAILURE
86Conversion Operation
extern SE_COORD_STATUS_CODE_ENUM
SE_ConvertCoordToGivenSystem ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_ptr,
const SE_COORD src_coord_ptr,
SE_COORD dest_coord_ptr )
- SE_COORD_EXTENDED_SOURCE_COORD
- SE_COORD_INVALID_SOURCE_COORD
- SE_COORD_EXTENDED_DEST_COORD
- SE_COORD_INVALID_DEST_COORD
- SE_COORD_EXTENDED_SOURCE_AND_DEST_COORD
- SE_COORD_SUCCESS
- SE_COORD_UNSUPPORTED
- SE_COORD_FAILURE
Not yet supported
87Multi-conversion Operation
extern SE_COORD_STATUS_CODE_ENUM
SE_ConvertCoordArray ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_ptr,
SE_PINT32 array_size, const
SE_COORD source_coord_array,
SE_COORD dest_coord_array)
- Similar to SE_ConvertCoordtoGivenSystem
- Invalid status is returned if any coordinates are
invalid (source or destination) - Source Extended status takes precedence over
Destination Extended status - See SCR CORE-158B for full details
88Boundary Checking
extern SE_COORD_STATUS_CODE_ENUM
SE_ConvertCoordToGivenSystemWithoutBoundaryCheckin
g ( const SE_CONVERT_COORD_SYSTEM_PAIR
convert_params_ptr, const SE_COORD
src_coord_ptr, SE_COORD
dest_coord_ptr )
- For Sapphire release may simply duplicate
SE_ConvertCoordToGivenSystem (with checking)
89Operation Teardown
extern SE_COORD_STATUS_CODE_ENUM
SE_FreeCoordConversionConstants (
SE_CONVERT_COORD_SYSTEM_PAIR to_free )
- SE_COORD_FAILURE
- if to_free NULL
- SE_COORD_SUCCESS
90Vector Operation
extern SE_COORD_STATUS_CODE_ENUM
SE_ConvertVector3Type ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_
ptr, const SE_COORD conversion_location_p
tr, const SE_VECTOR_3_TYPE
source_vec_ptr, SE_VECTOR_3_TYPE
dest_vec_ptr )
- SE_COORD_INVALID_SRF_PAIR
- SE_COORD_INVALID_SOURCE_COORD
- SE_COORD_INVALID_SOURCE_VECTOR
- SE_COORD_INVALID_DEST_VECTOR
- SE_COORD_SUCCESS
- SE_COORD_FAILURE
91Matrix Operation
extern SE_COORD_STATUS_CODE_ENUM
SE_ConvertMatrix3x3 ( const
SE_CONVERT_COORD_SYSTEM_PAIR convert_params_
ptr, const SE_COORD conversion_location_p
tr, const SE_MATRIX_3X3_TYPE
source_3x3_ptr, SE_MATRIX_3X3_TYPE
dest_3x3_ptr )
- SE_COORD_INVALID_SRF_PAIR
- SE_COORD_INVALID_SOURCE_COORD
- SE_COORD_INVALID_SOURCE_MATRIX
- SE_COORD_INVALID_DEST_MATRIX
- SE_COORD_SUCCESS
- SE_COORD_FAILURE
Not yet supported
92Transform