cs namespace¶
-
namespace
cs
¶ Coordinate systems and their axis.
osgeo.proj.cs namespace
Typedefs
-
using
MeridianNNPtr
= util::nn<MeridianPtr>¶ Non-null shared pointer of Meridian.
-
using
CoordinateSystemAxisPtr
= std::shared_ptr<CoordinateSystemAxis>¶ Shared pointer of CoordinateSystemAxis.
-
using
CoordinateSystemAxisNNPtr
= util::nn<CoordinateSystemAxisPtr>¶ Non-null shared pointer of CoordinateSystemAxis.
-
typedef std::shared_ptr<CoordinateSystem>
CoordinateSystemPtr
¶ Shared pointer of CoordinateSystem.
-
typedef util::nn<CoordinateSystemPtr>
CoordinateSystemNNPtr
¶ Non-null shared pointer of CoordinateSystem.
-
using
SphericalCSPtr
= std::shared_ptr<SphericalCS>¶ Shared pointer of SphericalCS.
-
using
SphericalCSNNPtr
= util::nn<SphericalCSPtr>¶ Non-null shared pointer of SphericalCS.
-
using
EllipsoidalCSPtr
= std::shared_ptr<EllipsoidalCS>¶ Shared pointer of EllipsoidalCS.
-
using
EllipsoidalCSNNPtr
= util::nn<EllipsoidalCSPtr>¶ Non-null shared pointer of EllipsoidalCS.
-
using
VerticalCSPtr
= std::shared_ptr<VerticalCS>¶ Shared pointer of VerticalCS.
-
using
VerticalCSNNPtr
= util::nn<VerticalCSPtr>¶ Non-null shared pointer of VerticalCS.
-
using
CartesianCSPtr
= std::shared_ptr<CartesianCS>¶ Shared pointer of CartesianCS.
-
using
CartesianCSNNPtr
= util::nn<CartesianCSPtr>¶ Non-null shared pointer of CartesianCS.
-
using
OrdinalCSNNPtr
= util::nn<OrdinalCSPtr>¶ Non-null shared pointer of OrdinalCS.
-
using
ParametricCSPtr
= std::shared_ptr<ParametricCS>¶ Shared pointer of ParametricCS.
-
using
ParametricCSNNPtr
= util::nn<ParametricCSPtr>¶ Non-null shared pointer of ParametricCS.
-
using
TemporalCSPtr
= std::shared_ptr<TemporalCS>¶ Shared pointer of TemporalCS.
-
using
TemporalCSNNPtr
= util::nn<TemporalCSPtr>¶ Non-null shared pointer of TemporalCS.
-
using
DateTimeTemporalCSPtr
= std::shared_ptr<DateTimeTemporalCS>¶ Shared pointer of DateTimeTemporalCS.
-
using
DateTimeTemporalCSNNPtr
= util::nn<DateTimeTemporalCSPtr>¶ Non-null shared pointer of DateTimeTemporalCS.
-
using
TemporalCountCSPtr
= std::shared_ptr<TemporalCountCS>¶ Shared pointer of TemporalCountCS.
-
using
TemporalCountCSNNPtr
= util::nn<TemporalCountCSPtr>¶ Non-null shared pointer of TemporalCountCS.
-
using
TemporalMeasureCSPtr
= std::shared_ptr<TemporalMeasureCS>¶ Shared pointer of TemporalMeasureCS.
-
using
TemporalMeasureCSNNPtr
= util::nn<TemporalMeasureCSPtr>¶ Non-null shared pointer of TemporalMeasureCS.
-
class
AxisDirection
: public osgeo::proj::util::CodeList¶ - #include <coordinatesystem.hpp>
The direction of positive increase in the coordinate value for a coordinate system axis.
- Remark
Implements AxisDirection from ISO_19111_2019
Public Static Attributes
-
const AxisDirection
NORTH
¶ Axis positive direction is north. In a geodetic or projected CRS, north is defined through the geodetic reference frame. In an engineering CRS, north may be defined with respect to an engineering object rather than a geographical direction.
-
const AxisDirection
NORTH_NORTH_EAST
¶ Axis positive direction is approximately north-north-east.
-
const AxisDirection
NORTH_EAST
¶ Axis positive direction is approximately north-east.
-
const AxisDirection
EAST_NORTH_EAST
¶ Axis positive direction is approximately east-north-east.
-
const AxisDirection
EAST
¶ Axis positive direction is 90deg clockwise from north.
-
const AxisDirection
EAST_SOUTH_EAST
¶ Axis positive direction is approximately east-south-east.
-
const AxisDirection
SOUTH_EAST
¶ Axis positive direction is approximately south-east.
-
const AxisDirection
SOUTH_SOUTH_EAST
¶ Axis positive direction is approximately south-south-east.
-
const AxisDirection
SOUTH
¶ Axis positive direction is 180deg clockwise from north.
-
const AxisDirection
SOUTH_SOUTH_WEST
¶ Axis positive direction is approximately south-south-west.
-
const AxisDirection
SOUTH_WEST
¶ Axis positive direction is approximately south-west.
-
const AxisDirection
WEST_SOUTH_WEST
¶ Axis positive direction is approximately west-south-west.
-
const AxisDirection
WEST
¶ Axis positive direction is 270deg clockwise from north.
-
const AxisDirection
WEST_NORTH_WEST
¶ Axis positive direction is approximately west-north-west.
-
const AxisDirection
NORTH_WEST
¶ Axis positive direction is approximately north-west.
-
const AxisDirection
NORTH_NORTH_WEST
¶ Axis positive direction is approximately north-north-west.
-
const AxisDirection
UP
¶ Axis positive direction is up relative to gravity.
-
const AxisDirection
DOWN
¶ Axis positive direction is down relative to gravity.
-
const AxisDirection
GEOCENTRIC_X
¶ Axis positive direction is in the equatorial plane from the centre of the modelled Earth towards the intersection of the equator with the prime meridian.
-
const AxisDirection
GEOCENTRIC_Y
¶ Axis positive direction is in the equatorial plane from the centre of the modelled Earth towards the intersection of the equator and the meridian 90deg eastwards from the prime meridian.
-
const AxisDirection
GEOCENTRIC_Z
¶ Axis positive direction is from the centre of the modelled Earth parallel to its rotation axis and towards its north pole.
-
const AxisDirection
COLUMN_POSITIVE
¶ Axis positive direction is towards higher pixel column.
-
const AxisDirection
COLUMN_NEGATIVE
¶ Axis positive direction is towards lower pixel column.
-
const AxisDirection
ROW_POSITIVE
¶ Axis positive direction is towards higher pixel row.
-
const AxisDirection
ROW_NEGATIVE
¶ Axis positive direction is towards lower pixel row.
-
const AxisDirection
DISPLAY_RIGHT
¶ Axis positive direction is right in display.
-
const AxisDirection
DISPLAY_LEFT
¶ Axis positive direction is left in display.
-
const AxisDirection
DISPLAY_UP
¶ Axis positive direction is towards top of approximately vertical display surface.
-
const AxisDirection
DISPLAY_DOWN
¶ Axis positive direction is towards bottom of approximately vertical display surface.
-
const AxisDirection
FORWARD
¶ Axis positive direction is forward; for an observer at the centre of the object this is will be towards its front, bow or nose.
-
const AxisDirection
AFT
¶ Axis positive direction is aft; for an observer at the centre of the object this will be towards its back, stern or tail.
-
const AxisDirection
PORT
¶ Axis positive direction is port; for an observer at the centre of the object this will be towards its left.
-
const AxisDirection
STARBOARD
¶ Axis positive direction is starboard; for an observer at the centre of the object this will be towards its right.
-
const AxisDirection
CLOCKWISE
¶ Axis positive direction is clockwise from a specified direction.
-
const AxisDirection
COUNTER_CLOCKWISE
¶ Axis positive direction is counter clockwise from a specified direction.
-
const AxisDirection
TOWARDS
¶ Axis positive direction is towards the object.
-
const AxisDirection
AWAY_FROM
¶ Axis positive direction is away from the object.
-
const AxisDirection
FUTURE
¶ Temporal axis positive direction is towards the future.
-
const AxisDirection
PAST
¶ Temporal axis positive direction is towards the past.
-
const AxisDirection
UNSPECIFIED
¶ Axis positive direction is unspecified.
-
class
CartesianCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
A two- or three-dimensional coordinate system in Euclidean space with orthogonal straight axes.
All axes shall have the same length unit. A CartesianCS shall have two or three axis associations; the number of associations shall equal the dimension of the CS.
- Remark
Implements CartesianCS from ISO_19111_2019
Public Static Functions
-
CartesianCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2)¶ Instantiate a CartesianCS.
- Return
a new CartesianCS.
- Parameters
properties
: See general_properties.axis1
: The first axis.axis2
: The second axis.
-
CartesianCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2, const CoordinateSystemAxisNNPtr &axis3)¶ Instantiate a CartesianCS.
- Return
a new CartesianCS.
- Parameters
properties
: See general_properties.axis1
: The first axis.axis2
: The second axis.axis3
: The third axis.
-
CartesianCSNNPtr
createEastingNorthing
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS with a Easting (first) and Northing (second) axis.
- Return
a new CartesianCS.
- Parameters
unit
: Linear unit of the axes.
-
CartesianCSNNPtr
createNorthingEasting
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS with a Northing (first) and Easting (second) axis.
- Return
a new CartesianCS.
- Parameters
unit
: Linear unit of the axes.
-
CartesianCSNNPtr
createNorthPoleEastingSouthNorthingSouth
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS, north-pole centered, with a Easting (first) South-Oriented and Northing (second) South-Oriented axis.
- Return
a new CartesianCS.
- Parameters
unit
: Linear unit of the axes.
-
CartesianCSNNPtr
createSouthPoleEastingNorthNorthingNorth
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS, south-pole centered, with a Easting (first) North-Oriented and Northing (second) North-Oriented axis.
- Return
a new CartesianCS.
- Parameters
unit
: Linear unit of the axes.
-
CartesianCSNNPtr
createWestingSouthing
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS with a Westing (first) and Southing (second) axis.
- Return
a new CartesianCS.
- Parameters
unit
: Linear unit of the axes.
-
CartesianCSNNPtr
createGeocentric
(const common::UnitOfMeasure &unit)¶ Instantiate a CartesianCS with the three geocentric axes.
- Return
a new CartesianCS.
- Parameters
unit
: Liinear unit of the axes.
-
class
CoordinateSystem
: public osgeo::proj::common::IdentifiedObject, public osgeo::proj::io::IJSONExportable¶ - #include <coordinatesystem.hpp>
Abstract class modelling a coordinate system (CS)
A CS is the non-repeating sequence of coordinate system axes that spans a given coordinate space. A CS is derived from a set of mathematical rules for specifying how coordinates in a given space are to be assigned to points. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded.
- Remark
Implements CoordinateSystem from ISO_19111_2019
Subclassed by osgeo::proj::cs::CartesianCS, osgeo::proj::cs::EllipsoidalCS, osgeo::proj::cs::OrdinalCS, osgeo::proj::cs::ParametricCS, osgeo::proj::cs::SphericalCS, osgeo::proj::cs::TemporalCS, osgeo::proj::cs::VerticalCS
Public Functions
-
const std::vector<CoordinateSystemAxisNNPtr> &
axisList
()¶ Return the list of axes of this coordinate system.
- Return
the axes.
-
class
CoordinateSystemAxis
: public osgeo::proj::common::IdentifiedObject, public osgeo::proj::io::IJSONExportable¶ - #include <coordinatesystem.hpp>
The definition of a coordinate system axis.
- Remark
Implements CoordinateSystemAxis from ISO_19111_2019
Public Functions
-
const std::string &
abbreviation
()¶ Return the axis abbreviation.
The abbreviation used for this coordinate system axis; this abbreviation is also used to identify the coordinates in the coordinate tuple. Examples are X and Y.
- Return
the abbreviation.
-
const AxisDirection &
direction
()¶ Return the axis direction.
The direction of this coordinate system axis (or in the case of Cartesian projected coordinates, the direction of this coordinate system axis locally) Examples: north or south, east or west, up or down. Within any set of coordinate system axes, only one of each pair of terms can be used. For Earth-fixed CRSs, this direction is often approximate and intended to provide a human interpretable meaning to the axis. When a geodetic reference frame is used, the precise directions of the axes may therefore vary slightly from this approximate direction. Note that an EngineeringCRS often requires specific descriptions of the directions of its coordinate system axes.
- Return
the direction.
-
const common::UnitOfMeasure &
unit
()¶ Return the axis unit.
This is the spatial unit or temporal quantity used for this coordinate system axis. The value of a coordinate in a coordinate tuple shall be recorded using this unit.
- Return
the axis unit.
-
const util::optional<double> &
minimumValue
()¶ Return the minimum value normally allowed for this axis, in the unit for the axis.
- Return
the minimum value, or empty.
-
const util::optional<double> &
maximumValue
()¶ Return the maximum value normally allowed for this axis, in the unit for the axis.
- Return
the maximum value, or empty.
-
const MeridianPtr &
meridian
()¶ Return the meridian that the axis follows from the pole, for a coordinate reference system centered on a pole.
- Return
the meridian, or null.
Public Static Functions
-
CoordinateSystemAxisNNPtr
create
(const util::PropertyMap &properties, const std::string &abbreviationIn, const AxisDirection &directionIn, const common::UnitOfMeasure &unitIn, const MeridianPtr &meridianIn = nullptr)¶ Instantiate a CoordinateSystemAxis.
- Return
a new CoordinateSystemAxis.
- Parameters
properties
: See general_properties. The name should generally be defined.abbreviationIn
: Axis abbreviation (might be empty)directionIn
: Axis directionunitIn
: Axis unitmeridianIn
: The meridian that the axis follows from the pole, for a coordinate reference system centered on a pole, or nullptr
-
class
DateTimeTemporalCS
: public osgeo::proj::cs::TemporalCS¶ - #include <coordinatesystem.hpp>
A one-dimensional coordinate system used to record time in dateTime representation as defined in ISO 8601.
A DateTimeTemporalCS shall have one axis association. It does not use axisUnitID; the temporal quantities are defined through the ISO 8601 representation.
- Remark
Implements DateTimeTemporalCS from ISO_19111_2019
Public Static Functions
-
DateTimeTemporalCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis)¶ Instantiate a DateTimeTemporalCS.
- Return
a new DateTimeTemporalCS.
- Parameters
properties
: See general_properties.axisIn
: The axis.
-
class
EllipsoidalCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
A two- or three-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the three-dimensional case) ellipsoidal height.
An EllipsoidalCS shall have two or three associations.
- Remark
Implements EllipsoidalCS from ISO_19111_2019
Public Static Functions
-
EllipsoidalCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2)¶ Instantiate a EllipsoidalCS.
- Return
a new EllipsoidalCS.
- Parameters
properties
: See general_properties.axis1
: The first axis.axis2
: The second axis.
-
EllipsoidalCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2, const CoordinateSystemAxisNNPtr &axis3)¶ Instantiate a EllipsoidalCS.
- Return
a new EllipsoidalCS.
- Parameters
properties
: See general_properties.axis1
: The first axis.axis2
: The second axis.axis3
: The third axis.
-
EllipsoidalCSNNPtr
createLatitudeLongitude
(const common::UnitOfMeasure &unit)¶ Instantiate a EllipsoidalCS with a Latitude (first) and Longitude (second) axis.
- Return
a new EllipsoidalCS.
- Parameters
unit
: Angular unit of the axes.
-
EllipsoidalCSNNPtr
createLatitudeLongitudeEllipsoidalHeight
(const common::UnitOfMeasure &angularUnit, const common::UnitOfMeasure &linearUnit)¶ Instantiate a EllipsoidalCS with a Latitude (first), Longitude (second) axis and ellipsoidal height (third) axis.
- Return
a new EllipsoidalCS.
- Parameters
angularUnit
: Angular unit of the latitude and longitude axes.linearUnit
: Linear unit of the ellipsoidal height axis.
-
EllipsoidalCSNNPtr
createLongitudeLatitude
(const common::UnitOfMeasure &unit)¶ Instantiate a EllipsoidalCS with a Longitude (first) and Latitude (second) axis.
- Return
a new EllipsoidalCS.
- Parameters
unit
: Angular unit of the axes.
-
EllipsoidalCSNNPtr
createLongitudeLatitudeEllipsoidalHeight
(const common::UnitOfMeasure &angularUnit, const common::UnitOfMeasure &linearUnit)¶ Instantiate a EllipsoidalCS with a Longitude (first), Latitude (second) axis and ellipsoidal height (third) axis.
- Return
a new EllipsoidalCS.
- Since
7.0
- Parameters
angularUnit
: Angular unit of the latitude and longitude axes.linearUnit
: Linear unit of the ellipsoidal height axis.
-
class
Meridian
: public osgeo::proj::common::IdentifiedObject¶ - #include <coordinatesystem.hpp>
The meridian that the axis follows from the pole, for a coordinate reference system centered on a pole.
- Note
There is no modelling for this concept in ISO_19111_2019
- Remark
Implements MERIDIAN from WKT2
Public Functions
-
class
OrdinalCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
n-dimensional coordinate system in which every axis uses integers.
The number of associations shall equal the dimension of the CS.
- Remark
Implements OrdinalCS from ISO_19111_2019
Public Static Functions
-
OrdinalCSNNPtr
create
(const util::PropertyMap &properties, const std::vector<CoordinateSystemAxisNNPtr> &axisIn)¶ Instantiate a OrdinalCS.
- Return
a new OrdinalCS.
- Parameters
properties
: See general_properties.axisIn
: List of axis.
-
class
ParametricCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
one-dimensional coordinate reference system which uses parameter values or functions that may vary monotonically with height.
- Remark
Implements ParametricCS from ISO_19111_2019
Public Static Functions
-
ParametricCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axisIn)¶ Instantiate a ParametricCS.
- Return
a new ParametricCS.
- Parameters
properties
: See general_properties.axisIn
: Axis.
-
class
SphericalCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
A three-dimensional coordinate system in Euclidean space with one distance measured from the origin and two angular coordinates.
Not to be confused with an ellipsoidal coordinate system based on an ellipsoid “degenerated” into a sphere. A SphericalCS shall have three axis associations.
- Remark
Implements SphericalCS from ISO_19111_2019
Public Static Functions
-
SphericalCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2, const CoordinateSystemAxisNNPtr &axis3)¶ Instantiate a SphericalCS.
- Return
a new SphericalCS.
- Parameters
properties
: See general_properties.axis1
: The first axis.axis2
: The second axis.axis3
: The third axis.
-
class
TemporalCountCS
: public osgeo::proj::cs::TemporalCS¶ - #include <coordinatesystem.hpp>
A one-dimensional coordinate system used to record time as an integer count.
A TemporalCountCS shall have one axis association.
- Remark
Implements TemporalCountCS from ISO_19111_2019
Public Static Functions
-
TemporalCountCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis)¶ Instantiate a TemporalCountCS.
- Return
a new TemporalCountCS.
- Parameters
properties
: See general_properties.axisIn
: The axis.
-
class
TemporalCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
(Abstract class) A one-dimensional coordinate system used to record time.
A TemporalCS shall have one axis association.
- Remark
Implements TemporalCS from ISO_19111_2019
Subclassed by osgeo::proj::cs::DateTimeTemporalCS, osgeo::proj::cs::TemporalCountCS, osgeo::proj::cs::TemporalMeasureCS
-
class
TemporalMeasureCS
: public osgeo::proj::cs::TemporalCS¶ - #include <coordinatesystem.hpp>
A one-dimensional coordinate system used to record a time as a real number.
A TemporalMeasureCS shall have one axis association.
- Remark
Implements TemporalMeasureCS from ISO_19111_2019
Public Static Functions
-
TemporalMeasureCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis)¶ Instantiate a TemporalMeasureCS.
- Return
a new TemporalMeasureCS.
- Parameters
properties
: See general_properties.axisIn
: The axis.
-
class
VerticalCS
: public osgeo::proj::cs::CoordinateSystem¶ - #include <coordinatesystem.hpp>
A one-dimensional coordinate system used to record the heights or depths of points.
Such a coordinate system is usually dependent on the Earth’s gravity field. A VerticalCS shall have one axis association.
- Remark
Implements VerticalCS from ISO_19111_2019
Public Static Functions
-
VerticalCSNNPtr
create
(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis)¶ Instantiate a VerticalCS.
- Return
a new VerticalCS.
- Parameters
properties
: See general_properties.axis
: The axis.
-
VerticalCSNNPtr
createGravityRelatedHeight
(const common::UnitOfMeasure &unit)¶ Instantiate a VerticalCS with a Gravity-related height axis.
- Return
a new VerticalCS.
- Parameters
unit
: linear unit.
-
using