# Interface CoordinateReferenceSystem

All Superinterfaces:
  `IdentifiedObject, ReferenceSystem`

All Known Subinterfaces:
  `CompoundCRS, DerivedCRS, EngineeringCRS, GeneralDerivedCRS, GeocentricCRS, GeodeticCRS, GeographicCRS, ImageCRS, ProjectedCRS, SingleCRS, TemporalCRS, VerticalCRS`

All Known Implementing Classes:
  `AbstractCRS, DefaultCompoundCRS, DefaultDerivedCRS, DefaultEngineeringCRS, DefaultGeocentricCRS, DefaultGeographicCRS, DefaultParametricCRS, DefaultProjectedCRS, DefaultTemporalCRS, DefaultVerticalCRS`

@UML(identifier="SC_CRS", specification=ISO_19111) public interface CoordinateReferenceSystem extends ReferenceSystem
Abstract coordinate reference system, usually defined by a coordinate system and a datum. The concept of a coordinate reference system (CRS) captures the choice of values for the parameters that constitute the degrees of freedom of the coordinate space. The fact that such a choice has to be made, either arbitrarily or by adopting values from survey measurements, leads to the large number of coordinate reference systems in use around the world. It is also the cause of the little understood fact that the latitude and longitude of a point are not unique. Without the full specification of the coordinate reference system, coordinates are ambiguous at best and meaningless at worst. However for some interchange purposes it is sufficient to confirm the identity of the system without necessarily having the full system definition.

The concept of coordinates may be expanded from a strictly spatial context to include time. Time is then added as another coordinate to the coordinate tuple. It is even possible to add two time-coordinates, provided the two coordinates describe different independent quantities. An example of the latter is the time/space position of a subsurface point of which the vertical coordinate is expressed as the two-way travel time of a sound signal in milliseconds, as is common in seismic imaging. A second time-coordinate indicates the time of observation, usually expressed in whole years.

Since:
  1.0

- ## Field Summary

  ### Fields inherited from interface IdentifiedObject

  `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

  ### Fields inherited from interface ReferenceSystem

  `DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CoordinateSystem`
  `getCoordinateSystem()`
  Returns a relevant coordinate system instance.

  ### Methods inherited from interface IdentifiedObject

  `getAlias, getIdentifiers, getName, getRemarks, toWKT`

  ### Methods inherited from interface ReferenceSystem

  `getDomainOfValidity, getScope`

- ## Method Details

  - ### getCoordinateSystem

    CoordinateSystem getCoordinateSystem()
    Returns a relevant coordinate system instance. Special cases:

    - If the CRS instance on which this method is invoked is an instance of the single CRS interface, then the CS instance which is returned shall be one of the defined sub-interfaces of coordinate system.

    - If the CRS instance on which this method is invoked is an instance of the compound CRS interface, then the CS instance which is returned shall have dimension and axis components obtained from different components of the instance CRS.

    Returns:
      The coordinate system.