Skip to content

cs module

This is the cs module.

This module contains geographic metadata structures regarding coordinate systems derived from the ISO 19111 international standard.

AffineCS

Bases: CoordinateSystem

A 2- or 3-dimensional coordinate system with straight axes that are not necessarily orthogonal.

Source code in opengis/referencing/cs.py
330
331
332
333
334
class AffineCS(CoordinateSystem):
    """
    A 2- or 3-dimensional coordinate system with straight axes that are not
    necessarily orthogonal.
    """

AxisDirection

Bases: Enum

The direction of positive increase in the coordinate value for a coordinate system axis. This direction is exact in some cases, and is approximate in other cases.

Source code in opengis/referencing/cs.py
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
class AxisDirection(Enum):
    """
    The direction of positive increase in the coordinate value for a
    coordinate system axis. This direction is exact in some cases, and is
    approximate in other cases.
    """

    NORTH = "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.
    """

    NORTH_NORTH_EAST = "northNorthEast"
    """Axis positive direction is approximately north-north-east."""

    NORTH_EAST = "northEast"
    """Axis positive direction is approximately north-east."""

    EAST_NORTH_EAST = "eastNorthEast"
    """Axis positive direction is approximately east-north-east."""

    EAST = "east"
    """Axis positive direction is ϖ/2 radians clockwise from north."""

    EAST_SOUTH_EAST = "eastSouthEast"
    """Axis positive direction is approximately east-south-east."""

    SOUTH_EAST = "southEast"
    """Axis positive direction is approximately south-east."""

    SOUTH_SOUTH_EAST = "southSouthWest"
    """Axis positive direction is approximately south-south-east."""

    SOUTH = "south"
    """Axis positive direction is ϖ radians clockwise from north."""

    SOUTH_SOUTH_WEST = "southSouthWest"
    """Axis positive direction is approximately south-south-west."""

    SOUTH_WEST = "southWest"
    """Axis positive direction is approximately south-west."""

    WEST_SOUTH_WEST = "westSouthWest"
    """Axis positive direction is approximately west-south-west."""

    WEST = "west"
    """Axis positive direction is 3ϖ/2 radians clockwise from north."""

    WEST_NORTH_WEST = "westNorthWest"
    """Axis positive direction is approximately west-north-west."""

    NORTH_WEST = "northWest"
    """Axis positive direction is approximately north-west."""

    NORTH_NORTH_WEST = "northNorthWest"
    """Axis positive direction is approximately north-north-west."""

    UP = "up"
    """Axis positive direction is up relative to gravity."""

    DOWN = "down"
    """Axis positive direction is down relative to gravity."""

    GEOCENTRIC_X = "geocentricX"
    """
    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.
    """

    GEOCENTRIC_Y = "geocentricY"
    """
    Axis positive direction is in the equatorial plane from the centre of the
    modelled Earth towards the intersection of the equator and the meridian
    ϖ/2 radians eastwards from the prime meridian.
    """

    GEOCENTRIC_Z = "geocentricZ"
    """
    Axis positive direction is from the centre of the modelled Earth parallel
    to its rotation axis and towards its north pole.
    """

    COLUMN_POSITIVE = "columnPositive"
    """Axis positive direction is towards higher pixel column."""

    COLUMN_NEGATIVE = "columnNegative"
    """Axis positive direction is towards lower pixel column."""

    ROW_POSITIVE = "rowPositive"
    """Axis positive direction is towards higher pixel row."""

    ROW_NEGATIVE = "rowNegative"
    """Axis positive direction is towards lower pixel row."""

    DISPLAY_RIGHT = "displayRight"
    """Axis positive direction is right in display."""

    DISPLAY_LEFT = "displayLeft"
    """Axis positive direction is left in display."""

    DISPLAY_UP = "displayUp"
    """
    Axis positive direction is towards top of approximately vertical display
    surface.
    """

    DISPLAY_DOWN = "displayDown"
    """
    Axis positive direction is towards bottom of approximately vertical
    display surface.
    """

    FORWARD = "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.
    """

    AFT = "aft"
    """
    Axis positive direction is aft; for an observer at the centre of the
    object this will be towards its back, stern or tail.
    """

    PORT = "port"
    """
    Axis positive direction is port; for an observer at the centre of the
    object this will be towards its left.
    """

    STARBOARD = "starboard"
    """
    Axis positive direction is starboard; for an observer at the centre of the
    object this will be towards its right.
    """

    CLOCKWISE = "clockwise"
    """Axis positive direction is clockwise from a specified direction."""

    COUNTER_CLOCKWISE = "counterclockwise"
    """
    Axis positive direction is counter clockwise from a specified direction.
    """

    TOWARDS = "towards"
    """Axis positive direction is towards the object."""

    AWAY_FROM = "awayfrom"
    """Axis positive direction is away from the object."""

    FUTURE = "future"
    """Temporal axis positive direction is towards the future."""

    PAST = "past"
    """Temporal axis positive direction is towards the past."""

    UNSPECIFIED = "unspecified"
    """Axis positive direction is unspecified."""

AFT = 'aft' class-attribute instance-attribute

Axis positive direction is aft; for an observer at the centre of the object this will be towards its back, stern or tail.

AWAY_FROM = 'awayfrom' class-attribute instance-attribute

Axis positive direction is away from the object.

CLOCKWISE = 'clockwise' class-attribute instance-attribute

Axis positive direction is clockwise from a specified direction.

COLUMN_NEGATIVE = 'columnNegative' class-attribute instance-attribute

Axis positive direction is towards lower pixel column.

COLUMN_POSITIVE = 'columnPositive' class-attribute instance-attribute

Axis positive direction is towards higher pixel column.

COUNTER_CLOCKWISE = 'counterclockwise' class-attribute instance-attribute

Axis positive direction is counter clockwise from a specified direction.

DISPLAY_DOWN = 'displayDown' class-attribute instance-attribute

Axis positive direction is towards bottom of approximately vertical display surface.

DISPLAY_LEFT = 'displayLeft' class-attribute instance-attribute

Axis positive direction is left in display.

DISPLAY_RIGHT = 'displayRight' class-attribute instance-attribute

Axis positive direction is right in display.

DISPLAY_UP = 'displayUp' class-attribute instance-attribute

Axis positive direction is towards top of approximately vertical display surface.

DOWN = 'down' class-attribute instance-attribute

Axis positive direction is down relative to gravity.

EAST = 'east' class-attribute instance-attribute

Axis positive direction is ϖ/2 radians clockwise from north.

EAST_NORTH_EAST = 'eastNorthEast' class-attribute instance-attribute

Axis positive direction is approximately east-north-east.

EAST_SOUTH_EAST = 'eastSouthEast' class-attribute instance-attribute

Axis positive direction is approximately east-south-east.

FORWARD = 'forward' class-attribute instance-attribute

Axis positive direction is forward; for an observer at the centre of the object this is will be towards its front, bow or nose.

FUTURE = 'future' class-attribute instance-attribute

Temporal axis positive direction is towards the future.

GEOCENTRIC_X = 'geocentricX' class-attribute instance-attribute

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.

GEOCENTRIC_Y = 'geocentricY' class-attribute instance-attribute

Axis positive direction is in the equatorial plane from the centre of the modelled Earth towards the intersection of the equator and the meridian ϖ/2 radians eastwards from the prime meridian.

GEOCENTRIC_Z = 'geocentricZ' class-attribute instance-attribute

Axis positive direction is from the centre of the modelled Earth parallel to its rotation axis and towards its north pole.

NORTH = 'north' class-attribute instance-attribute

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.

NORTH_EAST = 'northEast' class-attribute instance-attribute

Axis positive direction is approximately north-east.

NORTH_NORTH_EAST = 'northNorthEast' class-attribute instance-attribute

Axis positive direction is approximately north-north-east.

NORTH_NORTH_WEST = 'northNorthWest' class-attribute instance-attribute

Axis positive direction is approximately north-north-west.

NORTH_WEST = 'northWest' class-attribute instance-attribute

Axis positive direction is approximately north-west.

PAST = 'past' class-attribute instance-attribute

Temporal axis positive direction is towards the past.

PORT = 'port' class-attribute instance-attribute

Axis positive direction is port; for an observer at the centre of the object this will be towards its left.

ROW_NEGATIVE = 'rowNegative' class-attribute instance-attribute

Axis positive direction is towards lower pixel row.

ROW_POSITIVE = 'rowPositive' class-attribute instance-attribute

Axis positive direction is towards higher pixel row.

SOUTH = 'south' class-attribute instance-attribute

Axis positive direction is ϖ radians clockwise from north.

SOUTH_EAST = 'southEast' class-attribute instance-attribute

Axis positive direction is approximately south-east.

SOUTH_SOUTH_EAST = 'southSouthWest' class-attribute instance-attribute

Axis positive direction is approximately south-south-east.

SOUTH_SOUTH_WEST = 'southSouthWest' class-attribute instance-attribute

Axis positive direction is approximately south-south-west.

SOUTH_WEST = 'southWest' class-attribute instance-attribute

Axis positive direction is approximately south-west.

STARBOARD = 'starboard' class-attribute instance-attribute

Axis positive direction is starboard; for an observer at the centre of the object this will be towards its right.

TOWARDS = 'towards' class-attribute instance-attribute

Axis positive direction is towards the object.

UNSPECIFIED = 'unspecified' class-attribute instance-attribute

Axis positive direction is unspecified.

UP = 'up' class-attribute instance-attribute

Axis positive direction is up relative to gravity.

WEST = 'west' class-attribute instance-attribute

Axis positive direction is 3ϖ/2 radians clockwise from north.

WEST_NORTH_WEST = 'westNorthWest' class-attribute instance-attribute

Axis positive direction is approximately west-north-west.

WEST_SOUTH_WEST = 'westSouthWest' class-attribute instance-attribute

Axis positive direction is approximately west-south-west.

CartesianCS

Bases: CoordinateSystem

A 2- or 3-dimensional coordinate system with orthogonal straight axes. All axes shall have the same length unit of measure.

Source code in opengis/referencing/cs.py
337
338
339
340
341
342
class CartesianCS(CoordinateSystem):
    """
    A 2- or 3-dimensional coordinate system with orthogonal straight axes. All
    axes shall have the same length unit of
    measure.
    """

CoordinateSystem

Bases: IdentifiedObject

The set of coordinate system axes that spans a given coordinate space. A coordinate system (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, whenever those coordinates use a coordinate reference system that uses this coordinate system.

Source code in opengis/referencing/cs.py
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
class CoordinateSystem(IdentifiedObject):
    """
    The set of coordinate system axes that spans a given coordinate space.
    A coordinate system (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, whenever
    those coordinates use a coordinate reference system that uses this
    coordinate system.
    """

    @property
    @abstractmethod
    def dimension(self) -> int:
        """
        Returns the dimension of the coordinate system.

        :return: The dimension of the coordinate system.
        :rtype: int
        """

    @abstractmethod
    def axis(self, dimension: int) -> CoordinateSystemAxis:
        """
        Returns the axis for this coordinate system at the specified dimension.

        :param dimension: The zero based index of axis.
        :type dimension: int
        :return: The axis at the specified dimension.
        :rtype: CoordinateSystemAxis
        """

dimension: int abstractmethod property

Returns the dimension of the coordinate system.

:return: The dimension of the coordinate system. :rtype: int

axis(dimension) abstractmethod

Returns the axis for this coordinate system at the specified dimension.

:param dimension: The zero based index of axis. :type dimension: int :return: The axis at the specified dimension. :rtype: CoordinateSystemAxis

Source code in opengis/referencing/cs.py
318
319
320
321
322
323
324
325
326
327
@abstractmethod
def axis(self, dimension: int) -> CoordinateSystemAxis:
    """
    Returns the axis for this coordinate system at the specified dimension.

    :param dimension: The zero based index of axis.
    :type dimension: int
    :return: The axis at the specified dimension.
    :rtype: CoordinateSystemAxis
    """

CoordinateSystemAxis

Bases: IdentifiedObject

Definition of a coordinate system axis.

Source code in opengis/referencing/cs.py
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
class CoordinateSystemAxis(IdentifiedObject):
    """
    Definition of a coordinate system axis.
    """

    @property
    @abstractmethod
    def abbreviation(self) -> str:
        """
        The abbreviation used for this coordinate system axes.
        This abbreviation is also used to identify the coordinate in a
        coordinate tuple.

        :return: The coordinate system axis abbreviation.
        :rtype: int
        """

    @property
    @abstractmethod
    def direction(self) -> AxisDirection:
        """
        Direction of this coordinate system axis.

        :return: The coordinate system axis direction.
        :rtype: AxisDirection
        """

    @property
    @abstractmethod
    def unit(self):
        """
        Returns the unit of measure used for this coordinate system axis.
        The value of a coordinate in a coordinate tuple shall be recorded
        using this unit of measure, whenever those coordinates use a
        coordinate reference system that uses a coordinate system that uses
        this axis.

        :return: The coordinate system axis unit.
        """

    @property
    @abstractmethod
    def minimum_value(self) -> float:
        """
        Returns the minimum value normally allowed for this axis, in the unit
        of measure for the axis. If there is no minimum value, then this
        method returns negative infinity.

        :return: The minimum value, or the negative infinity if none.
        :rtype: float
        """
        return float("-inf")

    @property
    @abstractmethod
    def maximum_value(self) -> float:
        """
        Returns the maximum value normally allowed for this axis, in the unit
        of measure for the axis. If there is no maximum value, then this
        method returns positive infinity.

        :return: The maximum value, or the positive infinity if none.
        :rtype: float
        """
        return float("inf")

    @property
    @abstractmethod
    def range_meaning(self) -> RangeMeaning:
        """
        Returns the meaning of axis value range specified by the minimum and
        maximum values. This element shall be omitted when both minimum and
        maximum values are omitted. It may be included when minimum and/or
        maximum values are included. If this element is omitted when minimum
        or maximum values are included, the meaning is unspecified.

        :return: The range meaning, or null in none.
        :rtype: RangeMeaning
        """

abbreviation: str abstractmethod property

The abbreviation used for this coordinate system axes. This abbreviation is also used to identify the coordinate in a coordinate tuple.

:return: The coordinate system axis abbreviation. :rtype: int

direction: AxisDirection abstractmethod property

Direction of this coordinate system axis.

:return: The coordinate system axis direction. :rtype: AxisDirection

maximum_value: float abstractmethod property

Returns the maximum value normally allowed for this axis, in the unit of measure for the axis. If there is no maximum value, then this method returns positive infinity.

:return: The maximum value, or the positive infinity if none. :rtype: float

minimum_value: float abstractmethod property

Returns the minimum value normally allowed for this axis, in the unit of measure for the axis. If there is no minimum value, then this method returns negative infinity.

:return: The minimum value, or the negative infinity if none. :rtype: float

range_meaning: RangeMeaning abstractmethod property

Returns the meaning of axis value range specified by the minimum and maximum values. This element shall be omitted when both minimum and maximum values are omitted. It may be included when minimum and/or maximum values are included. If this element is omitted when minimum or maximum values are included, the meaning is unspecified.

:return: The range meaning, or null in none. :rtype: RangeMeaning

unit abstractmethod property

Returns the unit of measure used for this coordinate system axis. The value of a coordinate in a coordinate tuple shall be recorded using this unit of measure, whenever those coordinates use a coordinate reference system that uses a coordinate system that uses this axis.

:return: The coordinate system axis unit.

CylindricalCS

Bases: CoordinateSystem

A 3-dimensional coordinate system consisting of a PolarCS extended by a straight axis perpendicular to the plane spanned by the polar CS.

Source code in opengis/referencing/cs.py
345
346
347
348
349
350
class CylindricalCS(CoordinateSystem):
    """
    A 3-dimensional coordinate system consisting of a PolarCS extended by a
    straight axis perpendicular to the plane
    spanned by the polar CS.
    """

EllipsoidalCS

Bases: CoordinateSystem

A 2- or 3-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the 3D case) ellipsoidal height.

Source code in opengis/referencing/cs.py
353
354
355
356
357
358
class EllipsoidalCS(CoordinateSystem):
    """
    A 2- or 3-dimensional coordinate system in which position is specified by
    geodetic latitude, geodetic longitude,
    and (in the 3D case) ellipsoidal height.
    """

LinearCS

Bases: CoordinateSystem

A 1-dimensional coordinate system that consists of the points that lie on the single axis described. The associated coordinate is the distance - with or without offset - from the origin point, specified through the datum definition, to the point along the axis.

Source code in opengis/referencing/cs.py
361
362
363
364
365
366
367
class LinearCS(CoordinateSystem):
    """
    A 1-dimensional coordinate system that consists of the points that lie on
    the single axis described. The associated coordinate is the distance -
    with or without offset - from the origin point, specified through the
    datum definition, to the point along the axis.
    """

ParametricCS

Bases: CoordinateSystem

A 1-dimensional coordinate system containing a single axis. This coordinate system uses parameter values or functions to describe the position of a point.

Source code in opengis/referencing/cs.py
370
371
372
373
374
375
class ParametricCS(CoordinateSystem):
    """
    A 1-dimensional coordinate system containing a single axis. This
    coordinate system uses parameter values or functions to describe the
    position of a point.
    """

PolarCS

Bases: CoordinateSystem

A 2-dimensional coordinate system in which position is specified by the distance from the origin and the angle between the line from the origin to a point and a reference direction.

Source code in opengis/referencing/cs.py
378
379
380
381
382
383
class PolarCS(CoordinateSystem):
    """
    A 2-dimensional coordinate system in which position is specified by the
    distance from the origin and the angle between the line from the origin to
    a point and a reference direction.
    """

RangeMeaning

Bases: Enum

Meaning of the axis value range specified through minimum value and maximum value.

Source code in opengis/referencing/cs.py
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
class RangeMeaning(Enum):
    """
    Meaning of the axis value range specified through minimum value and
    maximum value.
    """

    EXACT = "exact"
    """
    Any value between and including minimumValue and maximumValue is valid.
    """

    WRAPAROUND = "wraparound"
    """
    The axis is continuous with values wrapping around at the minimum_value
    and maximum_value. Values with the same meaning repeat modulo the
    difference between maximum_value and minimum_value.
    """

EXACT = 'exact' class-attribute instance-attribute

Any value between and including minimumValue and maximumValue is valid.

WRAPAROUND = 'wraparound' class-attribute instance-attribute

The axis is continuous with values wrapping around at the minimum_value and maximum_value. Values with the same meaning repeat modulo the difference between maximum_value and minimum_value.

SphericalCS

Bases: CoordinateSystem

A 3-dimensional coordinate system with one distance measured from the origin and two angular coordinates. Not to be confused with an EllipsoidalCS based on an ellipsoid "degenerated" into a sphere.

Source code in opengis/referencing/cs.py
386
387
388
389
390
391
class SphericalCS(CoordinateSystem):
    """
    A 3-dimensional coordinate system with one distance measured from the
    origin and two angular coordinates. Not to be confused with an
    EllipsoidalCS based on an ellipsoid "degenerated" into a sphere.
    """

TimeCS

Bases: CoordinateSystem

A 1-dimensional coordinate system containing a single time axis. This coordinate system is used to describe the temporal position of a point in the specified time units from a specified time origin.

Source code in opengis/referencing/cs.py
394
395
396
397
398
399
class TimeCS(CoordinateSystem):
    """
    A 1-dimensional coordinate system containing a single time axis. This
    coordinate system is used to describe the temporal position of a point in
    the specified time units from a specified time origin.
    """

VerticalCS

Bases: CoordinateSystem

A 1-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, perhaps loosely as when atmospheric pressure is the basis for the vertical coordinate system axis. An exact definition is deliberately not provided as the complexities of the subject fall outside the scope of the ISO 19111 specification.

Source code in opengis/referencing/cs.py
402
403
404
405
406
407
408
409
410
class VerticalCS(CoordinateSystem):
    """
    A 1-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, perhaps loosely as when atmospheric pressure is the basis
    for the vertical coordinate system axis. An exact definition is
    deliberately not provided as the complexities of the subject fall outside
    the scope of the ISO 19111 specification.
    """