Skip to content

extent module

This is the extent module.

This module contains geographic metadata structures regarding data extent derived from the ISO 19115-1:2014 international standard.

BoundingPolygon

Bases: GeographicExtent

Encosing geometric onject which locates the resource, expressed as a set of (x,y) coordinate(s).

NOTE 1: If a polygon is used it should be closed (i.e. the last point replicates the first point).

NOTE 2: This type can be used to represent geometries other than polygons, e.g., points, lines.

Source code in opengis/metadata/extent.py
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
class BoundingPolygon(GeographicExtent):
    """
    Encosing geometric onject which locates the resource, expressed as a set
    of (x,y) coordinate(s).

    NOTE 1: If a polygon is used it should be closed (i.e. the last point
    replicates the first point).

    NOTE 2: This type can be used to represent geometries other than polygons,
    e.g., points, lines.
    """

    @property
    @abstractmethod
    def polygon(self) -> Sequence[Geometry]:
        """
        Sets of points defining the bounding polygon or any other `Geometry`
        object (point, line, or polygon).
        """

polygon: Sequence[Geometry] abstractmethod property

Sets of points defining the bounding polygon or any other Geometry object (point, line, or polygon).

Extent

Bases: ABC

Extent of the resource.

Source code in opengis/metadata/extent.py
 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
class Extent(ABC):
    """Extent of the resource."""

    @property
    @abstractmethod
    def description(self) -> Optional[str]:
        """
        Extent of the referring object.

        Sets of points defining the bounding polygon or any other
        geometry (point, line or polygon).

        MANDATORY: if `geographic_element`, `temproal_element`,
            and `vertical_element` are `None`.
        """

    @property
    @abstractmethod
    def geographic_element(self) -> Optional[Sequence['GeographicExtent']]:
        """
        Provides spatial component of the extent of the referring object.

        MANDATORY: if `description`, `temproal_element`,
            and `vertical_element` are `None`.
        """

    @property
    @abstractmethod
    def temporal_element(self) -> Optional[Sequence['TemporalExtent']]:
        """
        Provides temporal component of the extent of the referring object.

        MANDATORY: if `description`, `geographic_element`,
            and `vertical_element` are `None`.
        """

    @property
    @abstractmethod
    def vertical_element(self) -> Optional[Sequence[VerticalExtent]]:
        """
        Provides vertical component of the extent of the referring object.

        MANDATORY: if `description`, `geographic_element`,
            and `temporal_element` are `None`.
        """

description: Optional[str] abstractmethod property

Extent of the referring object.

Sets of points defining the bounding polygon or any other geometry (point, line or polygon).

if geographic_element, temproal_element,

and vertical_element are None.

geographic_element: Optional[Sequence[GeographicExtent]] abstractmethod property

Provides spatial component of the extent of the referring object.

if description, temproal_element,

and vertical_element are None.

temporal_element: Optional[Sequence[TemporalExtent]] abstractmethod property

Provides temporal component of the extent of the referring object.

if description, geographic_element,

and vertical_element are None.

vertical_element: Optional[Sequence[VerticalExtent]] abstractmethod property

Provides vertical component of the extent of the referring object.

if description, geographic_element,

and temporal_element are None.

GeographicBoundingBox

Bases: GeographicExtent

Geographic position of the resource.

NOTE: This is only an approximate reference so specifying the coordinate reference system is unnecessary and need only be provided with a precision of up to two decimal places.

Source code in opengis/metadata/extent.py
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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
class GeographicBoundingBox(GeographicExtent):
    """
    Geographic position of the resource.

    NOTE: This is only an approximate reference so specifying the coordinate
    reference system is unnecessary and need only be provided with a precision
    of up to two decimal places.
    """

    @property
    @abstractmethod
    def west_bound_longitude(self) -> float:
        """
        Western-most coordinate of the limit of the resource extent, expressed
        in longitude in decimal degrees (positive east).

        Domain: -180.0 <= West Bounding Logitude Value <= 180.0
        """

    @property
    @abstractmethod
    def east_bound_longitude(self) -> float:
        """
        Eastern-most coordinate of the limit of the resource extent, expressed
        in longitude in decimal degrees (positive east).

        Domain: -180.0 <= East Bounding Logitude Value <= 180.0
        """

    @property
    @abstractmethod
    def south_bound_latitude(self) -> float:
        """
        Southern-most coordinate of the limit of the resource extent,
        expressed in latitude in decimal degrees (positive north).

        Domain: -90.0 <= South Bounding Latitude Value <= 90.0;
            South Bouding Latitude Value <= North Bounding Latitude Value
        """

    @property
    @abstractmethod
    def north_bound_latitude(self) -> float:
        """
        Northern-most, coordinate of the limit of the resource extent
        expressed in latitude in decimal degrees (positive north).

        Domain: -90.0 <= North Bounding Latitude Value <= 90.0;
            North Bouding Latitude Value >= South Bounding Latitude Value
        """

east_bound_longitude: float abstractmethod property

Eastern-most coordinate of the limit of the resource extent, expressed in longitude in decimal degrees (positive east).

Domain: -180.0 <= East Bounding Logitude Value <= 180.0

north_bound_latitude: float abstractmethod property

Northern-most, coordinate of the limit of the resource extent expressed in latitude in decimal degrees (positive north).

-90.0 <= North Bounding Latitude Value <= 90.0;

North Bouding Latitude Value >= South Bounding Latitude Value

south_bound_latitude: float abstractmethod property

Southern-most coordinate of the limit of the resource extent, expressed in latitude in decimal degrees (positive north).

-90.0 <= South Bounding Latitude Value <= 90.0;

South Bouding Latitude Value <= North Bounding Latitude Value

west_bound_longitude: float abstractmethod property

Western-most coordinate of the limit of the resource extent, expressed in longitude in decimal degrees (positive east).

Domain: -180.0 <= West Bounding Logitude Value <= 180.0

GeographicDescription

Bases: GeographicExtent

Description of the geographic area using identifiers.

Source code in opengis/metadata/extent.py
214
215
216
217
218
219
220
221
222
223
224
class GeographicDescription(GeographicExtent):
    """Description of the geographic area using identifiers."""

    @property
    @abstractmethod
    def geographic_identifier(self) -> 'Identifier':
        """
        Identifier used to represent a geographic area.

        NOTE: a geographic identifier as described in ISO 19112.
        """

geographic_identifier: Identifier abstractmethod property

Identifier used to represent a geographic area.

NOTE: a geographic identifier as described in ISO 19112.

GeographicExtent

Bases: ABC

Spatial area of the resource.

Source code in opengis/metadata/extent.py
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
class GeographicExtent(ABC):
    """Spatial area of the resource."""

    @property
    @abstractmethod
    def extent_type_code(self) -> bool:
        """
        Indication of whether the geographic element encompasses an area
        covered by the data or an area where data is not present.

        Default: `True`

        Domain:
            `False` = 0 = exclusion
            `True`  = 1 = inclusion
        """

extent_type_code: bool abstractmethod property

Indication of whether the geographic element encompasses an area covered by the data or an area where data is not present.

Default: True

Domain

False = 0 = exclusion True = 1 = inclusion

SpatialTemporalExtent

Bases: TemporalExtent

Extent with respect to date/time and spatial boundaries.

Source code in opengis/metadata/extent.py
242
243
244
245
246
247
248
249
250
251
252
253
254
255
class SpatialTemporalExtent(TemporalExtent):
    """Extent with respect to date/time and spatial boundaries."""

    @property
    @abstractmethod
    def vertical_extent(self) -> VerticalExtent:
        """Vertical extent component."""

    @property
    @abstractmethod
    def spatial_extent(self) -> Sequence[GeographicExtent]:
        """
        Spatial extent component of a composite spatial and temporal extent.
        """

spatial_extent: Sequence[GeographicExtent] abstractmethod property

Spatial extent component of a composite spatial and temporal extent.

vertical_extent: VerticalExtent abstractmethod property

Vertical extent component.

TemporalExtent

Bases: ABC

Time period covered by the content of the resource.

Source code in opengis/metadata/extent.py
227
228
229
230
231
232
233
234
235
236
237
238
239
class TemporalExtent(ABC):
    """Time period covered by the content of the resource."""

    @property
    @abstractmethod
    def extent(self) -> tuple[datetime, datetime]:
        """
        Period for the content of the resource.

        Returns a tuple with the first component being the beginning `datetime`
        of the temporal period and the second component being the end
        `datetime`.
        """

extent: tuple[datetime, datetime] abstractmethod property

Period for the content of the resource.

Returns a tuple with the first component being the beginning datetime of the temporal period and the second component being the end datetime.

VerticalExtent

Bases: ABC

Vertical domain of resource.

Source code in opengis/metadata/extent.py
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
class VerticalExtent(ABC):
    """Vertical domain of resource."""

    @property
    @abstractmethod
    def minimum_value(self) -> float:
        """Lowest vertical extent contained in the resource."""

    @property
    @abstractmethod
    def maximum_value(self) -> float:
        """Highest vertical extent contained in the resource."""

    @property
    @abstractmethod
    def vertical_crs(self) -> Optional['VerticalCRS']:
        """
        Provides information about the vertical coordinate reference system
        to which the maximum and minimum elevation values are measured.

        Identifies the vertical coordinate reference system used for the
        minimum and maximum values.

        NOTE: The CRS information includes unit of measure.

        MANDATORY: if vertical_crs_id is `None`.
        """

    @property
    @abstractmethod
    def vertical_crs_id(self) -> Optional['ReferenceSystem']:
        """
        Identifies the vertical coordinate reference system used for the
        minimum and maximum values.

        MANDATORY: if vertical_crs is `None`.
        """

maximum_value: float abstractmethod property

Highest vertical extent contained in the resource.

minimum_value: float abstractmethod property

Lowest vertical extent contained in the resource.

vertical_crs: Optional[VerticalCRS] abstractmethod property

Provides information about the vertical coordinate reference system to which the maximum and minimum elevation values are measured.

Identifies the vertical coordinate reference system used for the minimum and maximum values.

NOTE: The CRS information includes unit of measure.

MANDATORY: if vertical_crs_id is None.

vertical_crs_id: Optional[ReferenceSystem] abstractmethod property

Identifies the vertical coordinate reference system used for the minimum and maximum values.

MANDATORY: if vertical_crs is None.