Skip to content

datum module

This is the datum module.

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

Datum

Bases: IdentifiedObject

Specifies the relationship of a coordinate system to the earth, thus creating a coordinate reference system.

Source code in opengis/referencing/datum.py
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
class Datum(IdentifiedObject):
    """
    Specifies the relationship of a coordinate system to the earth, thus
    creating a coordinate reference system.
    """

    @property
    @abstractmethod
    def anchor_point(self) -> str | None:
        """
        Description, possibly including coordinates, of the point or points
        used to anchor the datum to the Earth.
        """

    @property
    @abstractmethod
    def domain_of_validity(self) -> Extent:
        """
        Information about spatial, vertical, and temporal extent. This
        interface has four optional attributes (geographic elements, temporal
        elements, and vertical elements) and an element called description.
        At least one of the four shall be used.
        """

    @property
    @abstractmethod
    def realization_epoch(self) -> datetime | None:
        """
        The time after which this datum definition is valid.
        """

    @property
    @abstractmethod
    def scope(self) -> str:
        """
        Description of domain of usage, or limitations of usage, for which
        this datum object is valid.
        """

anchor_point: str | None abstractmethod property

Description, possibly including coordinates, of the point or points used to anchor the datum to the Earth.

domain_of_validity: Extent abstractmethod property

Information about spatial, vertical, and temporal extent. This interface has four optional attributes (geographic elements, temporal elements, and vertical elements) and an element called description. At least one of the four shall be used.

realization_epoch: datetime | None abstractmethod property

The time after which this datum definition is valid.

scope: str abstractmethod property

Description of domain of usage, or limitations of usage, for which this datum object is valid.

Ellipsoid

Bases: IdentifiedObject

Geometric figure that can be used to describe the approximate shape of the Earth.

Source code in opengis/referencing/datum.py
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
class Ellipsoid(IdentifiedObject):
    """
    Geometric figure that can be used to describe the approximate shape of the
    Earth.
    """

    @property
    @abstractmethod
    def axis_unit(self):
        """
        Linear unit of the semi-major and semi-minor axis values.
        """

    @property
    @abstractmethod
    def semi_major_axis(self) -> float:
        """
        Length of the semi-major axis of the ellipsoid. This is the equatorial
        radius in axis linear unit.
        """

    @property
    @abstractmethod
    def semi_minor_axis(self) -> float:
        """
        Length of the semi-minor axis of the ellipsoid. This is the polar
        radius in axis linear unit.
        """

    @property
    @abstractmethod
    def inverse_flattering(self) -> float:
        """
        Value of the inverse of the flattening constant.
        """

    @property
    @abstractmethod
    def is_inf_definitive(self) -> bool:
        """
        Indicates if the inverse flattening is definitive for this ellipsoid.
        Some ellipsoids use the IVF as the defining value, and calculate the
        polar radius whenever asked. Other ellipsoids use the polar radius to
        calculate the IVF whenever asked. This distinction can be important to
        avoid floating-point rounding errors.
        """

    @property
    @abstractmethod
    def is_sphere(self) -> bool:
        """
        `True` if the ellipsoid is degenerate and is actually a sphere.
        The sphere is completely defined by the semi-major axis, which is the
        radius of the sphere.
        """

axis_unit abstractmethod property

Linear unit of the semi-major and semi-minor axis values.

inverse_flattering: float abstractmethod property

Value of the inverse of the flattening constant.

is_inf_definitive: bool abstractmethod property

Indicates if the inverse flattening is definitive for this ellipsoid. Some ellipsoids use the IVF as the defining value, and calculate the polar radius whenever asked. Other ellipsoids use the polar radius to calculate the IVF whenever asked. This distinction can be important to avoid floating-point rounding errors.

is_sphere: bool abstractmethod property

True if the ellipsoid is degenerate and is actually a sphere. The sphere is completely defined by the semi-major axis, which is the radius of the sphere.

semi_major_axis: float abstractmethod property

Length of the semi-major axis of the ellipsoid. This is the equatorial radius in axis linear unit.

semi_minor_axis: float abstractmethod property

Length of the semi-minor axis of the ellipsoid. This is the polar radius in axis linear unit.

EngineeringDatum

Bases: Datum

Defines the origin of an engineering coordinate reference system.

Source code in opengis/referencing/datum.py
239
240
241
242
class EngineeringDatum(Datum):
    """
    Defines the origin of an engineering coordinate reference system.
    """

GeodeticDatum

Bases: Datum

Defines the location and precise orientation in 3-dimensional space of a defined ellipsoid (or sphere) that approximates the shape of the earth.

Source code in opengis/referencing/datum.py
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
class GeodeticDatum(Datum):
    """
    Defines the location and precise orientation in 3-dimensional space of a
    defined ellipsoid (or sphere) that approximates the shape of the earth.
    """

    @property
    @abstractmethod
    def ellipsoid(self) -> Ellipsoid:
        """
        Returns the ellipsoid.
        """

    @property
    @abstractmethod
    def prime_meridian(self) -> PrimeMeridian:
        """
        Returns the prime meridian.
        """

ellipsoid: Ellipsoid abstractmethod property

Returns the ellipsoid.

prime_meridian: PrimeMeridian abstractmethod property

Returns the prime meridian.

PrimeMeridian

Bases: IdentifiedObject

A prime meridian defines the origin from which longitude values are determined.

Source code in opengis/referencing/datum.py
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
class PrimeMeridian(IdentifiedObject):
    """
    A prime meridian defines the origin from which longitude values are
    determined.
    """

    @property
    @abstractmethod
    def greenwich_longitude(self) -> float:
        """
        Longitude of the prime meridian measured from the Greenwich meridian,
        positive eastward.
        """

    @property
    @abstractmethod
    def angular_unit(self):
        """
        Returns the angular unit of the Greenwich longitude.
        """

angular_unit abstractmethod property

Returns the angular unit of the Greenwich longitude.

greenwich_longitude: float abstractmethod property

Longitude of the prime meridian measured from the Greenwich meridian, positive eastward.

RealizationMethod

Bases: Enum

Specification of the method by which the vertical reference frame is realized.

Source code in opengis/referencing/datum.py
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class RealizationMethod(Enum):
    """
    Specification of the method by which the vertical reference frame is
    realized.
    """
    LEVELLING = "levelling"
    """
    The realization is by adjustment of a levelling network fixed to one or
    more tide gauges.
    """

    GEOID = "geoid"
    """
    The realization is through a geoid height model or a height correction
    model. This is applied to a specified geodetic CRS.
    """

    TIDAL = "tidal"
    """The realization is through a tidal model or by tidal predictions."""

GEOID = 'geoid' class-attribute instance-attribute

The realization is through a geoid height model or a height correction model. This is applied to a specified geodetic CRS.

LEVELLING = 'levelling' class-attribute instance-attribute

The realization is by adjustment of a levelling network fixed to one or more tide gauges.

TIDAL = 'tidal' class-attribute instance-attribute

The realization is through a tidal model or by tidal predictions.

TemporalDatum

Bases: Datum

A temporal datum defines the origin of a temporal coordinate reference system.

Source code in opengis/referencing/datum.py
 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
class TemporalDatum(Datum):
    """
    A temporal datum defines the origin of a temporal coordinate reference
    system.
    """

    @property
    @abstractmethod
    def anchor_point(self) -> None:
        """
        This attribute is defined in the Datum parent interface, but is not
        used by a temporal datum.
        """

    @property
    @abstractmethod
    def realization_epoch(self) -> None:
        """
        This attribute is defined in the Datum parent interface, but is not
        used by a temporal datum.
        """

    @property
    @abstractmethod
    def origin(self) -> datetime:
        """
        The date and time origin of this temporal datum.
        """

anchor_point: None abstractmethod property

This attribute is defined in the Datum parent interface, but is not used by a temporal datum.

origin: datetime abstractmethod property

The date and time origin of this temporal datum.

realization_epoch: None abstractmethod property

This attribute is defined in the Datum parent interface, but is not used by a temporal datum.

VerticalDatum

Bases: Datum

The method through which this vertical reference frame is realized.

Source code in opengis/referencing/datum.py
126
127
128
129
130
131
132
133
134
135
136
class VerticalDatum(Datum):
    """
    The method through which this vertical reference frame is realized.
    """

    @property
    @abstractmethod
    def realization_method(self) -> RealizationMethod:
        """
        The type of this vertical datum.
        """

realization_method: RealizationMethod abstractmethod property

The type of this vertical datum.