metadata namespace

namespace metadata

Common classes from ISO_19115 standard.

osgeo.proj.metadata namespace

Typedefs

typedef std::shared_ptr<Extent> ExtentPtr

Shared pointer of Extent.

typedef util::nn<ExtentPtr> ExtentNNPtr

Non-null shared pointer of Extent.

using GeographicExtentPtr = std::shared_ptr<GeographicExtent>

Shared pointer of GeographicExtent.

using GeographicExtentNNPtr = util::nn<GeographicExtentPtr>

Non-null shared pointer of GeographicExtent.

using GeographicBoundingBoxPtr = std::shared_ptr<GeographicBoundingBox>

Shared pointer of GeographicBoundingBox.

using GeographicBoundingBoxNNPtr = util::nn<GeographicBoundingBoxPtr>

Non-null shared pointer of GeographicBoundingBox.

using TemporalExtentPtr = std::shared_ptr<TemporalExtent>

Shared pointer of TemporalExtent.

using TemporalExtentNNPtr = util::nn<TemporalExtentPtr>

Non-null shared pointer of TemporalExtent.

using VerticalExtentPtr = std::shared_ptr<VerticalExtent>

Shared pointer of VerticalExtent.

using VerticalExtentNNPtr = util::nn<VerticalExtentPtr>

Non-null shared pointer of VerticalExtent.

using IdentifierPtr = std::shared_ptr<Identifier>

Shared pointer of Identifier.

using IdentifierNNPtr = util::nn<IdentifierPtr>

Non-null shared pointer of Identifier.

using PositionalAccuracyPtr = std::shared_ptr<PositionalAccuracy>

Shared pointer of PositionalAccuracy.

using PositionalAccuracyNNPtr = util::nn<PositionalAccuracyPtr>

Non-null shared pointer of PositionalAccuracy.

class Citation : public osgeo::proj::util::BaseObject
#include <metadata.hpp>

Standardized resource reference.

Local names are names which are directly accessible to and maintained by a NameSpace within which they are local, indicated by the scope.

Remark
Simplified version of Citation from GeoAPI

Public Functions

Citation(const std::string &titleIn)

Constructs a citation by its title.

const optional<std::string> &title()

Returns the name by which the cited resource is known.

class Extent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
#include <metadata.hpp>

Information about spatial, vertical, and temporal extent.

Remark
Simplified version of Extent from GeoAPI

Public Functions

const optional<std::string> &description()

Return a textual description of the extent.

Return
the description, or empty.

const std::vector<GeographicExtentNNPtr> &geographicElements()

Return the geographic element(s) of the extent

Return
the geographic element(s), or empty.

const std::vector<TemporalExtentNNPtr> &temporalElements()

Return the temporal element(s) of the extent

Return
the temporal element(s), or empty.

const std::vector<VerticalExtentNNPtr> &verticalElements()

Return the vertical element(s) of the extent

Return
the vertical element(s), or empty.

bool isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const

Returns whether an object is equivalent to another one.

Return
true if objects are equivalent.
Parameters
  • other: other object to compare to
  • criterion: comparaison criterion.

bool contains(const ExtentNNPtr &other) const

Returns whether this extent contains the other one.

Behaviour only well specified if each sub-extent category as at most one element.

bool intersects(const ExtentNNPtr &other) const

Returns whether this extent intersects the other one.

Behaviour only well specified if each sub-extent category as at most one element.

ExtentPtr intersection(const ExtentNNPtr &other) const

Returns the intersection of this extent with another one.

Behaviour only well specified if there is one single GeographicExtent in each object. Returns nullptr otherwise.

Public Static Functions

ExtentNNPtr create(const util::optional<std::string> &descriptionIn, const std::vector<GeographicExtentNNPtr> &geographicElementsIn, const std::vector<VerticalExtentNNPtr> &verticalElementsIn, const std::vector<TemporalExtentNNPtr> &temporalElementsIn)

Instanciate a Extent.

Return
a new Extent.
Parameters
  • descriptionIn: Textual description, or empty.
  • geographicElementsIn: Geographic element(s), or empty.
  • verticalElementsIn: Vertical element(s), or empty.
  • temporalElementsIn: Temporal element(s), or empty.

ExtentNNPtr createFromBBOX(double west, double south, double east, double north, const util::optional<std::string> &descriptionIn = util::optional<std::string>())

Instanciate a Extent from a bounding box.

Return
a new Extent.
Parameters
  • west: Western-most coordinate of the limit of the dataset extent (in degrees).
  • south: Southern-most coordinate of the limit of the dataset extent (in degrees).
  • east: Eastern-most coordinate of the limit of the dataset extent (in degrees).
  • north: Northern-most coordinate of the limit of the dataset extent (in degrees).
  • descriptionIn: Textual description, or empty.

Public Static Attributes

const ExtentNNPtr WORLD

World extent.

class GeographicBoundingBox : public osgeo::proj::metadata::GeographicExtent
#include <metadata.hpp>

Geographic position of the dataset.

This is only an approximate so specifying the co-ordinate reference system is unnecessary.

Remark
Implements GeographicBoundingBox from GeoAPI

Public Functions

double westBoundLongitude()

Returns the western-most coordinate of the limit of the dataset extent.

The unit is degrees.

If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses the anti-meridian.

double southBoundLatitude()

Returns the southern-most coordinate of the limit of the dataset extent.

The unit is degrees.

double eastBoundLongitude()

Returns the eastern-most coordinate of the limit of the dataset extent.

The unit is degrees.

If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses the anti-meridian.

double northBoundLatitude()

Returns the northern-most coordinate of the limit of the dataset extent.

The unit is degrees.

bool isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const

Returns whether an object is equivalent to another one.

Return
true if objects are equivalent.
Parameters
  • other: other object to compare to
  • criterion: comparaison criterion.

bool contains(const GeographicExtentNNPtr &other) const

Returns whether this extent contains the other one.

bool intersects(const GeographicExtentNNPtr &other) const

Returns whether this extent intersects the other one.

GeographicExtentPtr intersection(const GeographicExtentNNPtr &other) const

Returns the intersection of this extent with another one.

Public Static Functions

GeographicBoundingBoxNNPtr create(double west, double south, double east, double north)

Instanciate a GeographicBoundingBox.

If east < west, then the bounding box crosses the anti-meridian.

Return
a new GeographicBoundingBox.
Parameters
  • west: Western-most coordinate of the limit of the dataset extent (in degrees).
  • south: Southern-most coordinate of the limit of the dataset extent (in degrees).
  • east: Eastern-most coordinate of the limit of the dataset extent (in degrees).
  • north: Northern-most coordinate of the limit of the dataset extent (in degrees).

class GeographicExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
#include <metadata.hpp>

Base interface for geographic area of the dataset.

Remark
Simplified version of GeographicExtent from GeoAPI

Subclassed by osgeo::proj::metadata::GeographicBoundingBox

Public Functions

bool isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const = 0

Returns whether an object is equivalent to another one.

Return
true if objects are equivalent.
Parameters
  • other: other object to compare to
  • criterion: comparaison criterion.

virtual bool contains(const GeographicExtentNNPtr &other) const = 0

Returns whether this extent contains the other one.

virtual bool intersects(const GeographicExtentNNPtr &other) const = 0

Returns whether this extent intersects the other one.

virtual GeographicExtentPtr intersection(const GeographicExtentNNPtr &other) const = 0

Returns the intersection of this extent with another one.

class Identifier : public osgeo::proj::util::BaseObject, public osgeo::proj::io::IWKTExportable
#include <metadata.hpp>

Value uniquely identifying an object within a namespace.

Remark
Implements Identifier as described in ISO_19111_2018 but which originates from ISO_19115

Public Functions

const optional<Citation> &authority()

Return a citation for the organization responsible for definition and maintenance of the code.

Return
the citation for the authority, or empty.

const std::string &code()

Return the alphanumeric value identifying an instance in the codespace.

e.g. “4326” (for EPSG:4326 WGS 84 GeographicCRS)

Return
the code.

const optional<std::string> &codeSpace()

Return the organization responsible for definition and maintenance of the code.

e.g “EPSG”

Return
the authority codespace, or empty.

const optional<std::string> &version()

Return the version identifier for the namespace.

When appropriate, the edition is identified by the effective date, coded using ISO 8601 date format.

Return
the version or empty.

const optional<std::string> &description()

Return the natural language description of the meaning of the code value.

Return
the description or empty.

const optional<std::string> &uri()

Return the URI of the identifier.

Return
the URI or empty.

Public Static Functions

IdentifierNNPtr create(const std::string &codeIn = std::string(), const util::PropertyMap &properties = util::PropertyMap())

Instanciate a Identifier.

Return
a new Identifier.
Parameters

bool isEquivalentName(const char *a, const std::string &b)

Returns whether two names are considered equivalent.

Two names are equivalent by removing any space, underscore, dash, slash, { or } character from them, and comparing ina case insensitive way.

bool isEquivalentName(const std::string &a, const std::string &b)

Returns whether two names are considered equivalent.

Two names are equivalent by removing any space, underscore, dash, slash, { or } character from them, and comparing ina case insensitive way.

Public Static Attributes

const std::string AUTHORITY_KEY

Key to set the authority citation of a metadata::Identifier.

The value is to be provided as a string or a metadata::Citation.

const std::string CODE_KEY

Key to set the code of a metadata::Identifier.

The value is to be provided as a integer or a string.

const std::string CODESPACE_KEY

Key to set the organization responsible for definition and maintenance of the code of a metadata::Identifier.

The value is to be provided as a string.

const std::string VERSION_KEY

Key to set the version identifier for the namespace of a metadata::Identifier.

The value is to be provided as a string.

const std::string DESCRIPTION_KEY

Key to set the natural language description of the meaning of the code value of a metadata::Identifier.

The value is to be provided as a string.

const std::string URI_KEY

Key to set the URI of a metadata::Identifier.

The value is to be provided as a string.

const std::string EPSG

EPSG codespace.

const std::string OGC

OGC codespace.

class PositionalAccuracy : public osgeo::proj::util::BaseObject
#include <metadata.hpp>

Accuracy of the position of features.

Remark
Simplified version of PositionalAccuracy from GeoAPI, which originates from ISO_19115

Public Functions

const std::string &value()

Return the value of the positional accuracy.

Public Static Functions

PositionalAccuracyNNPtr create(const std::string &valueIn)

Instanciate a PositionalAccuracy.

Return
a new PositionalAccuracy.
Parameters
  • valueIn: positional accuracy value.

class TemporalExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
#include <metadata.hpp>

Time period covered by the content of the dataset.

Remark
Simplified version of TemporalExtent from GeoAPI

Public Functions

const std::string &start()

Returns the start of the temporal extent.

const std::string &stop()

Returns the end of the temporal extent.

bool isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const

Returns whether an object is equivalent to another one.

Return
true if objects are equivalent.
Parameters
  • other: other object to compare to
  • criterion: comparaison criterion.

bool contains(const TemporalExtentNNPtr &other) const

Returns whether this extent contains the other one.

bool intersects(const TemporalExtentNNPtr &other) const

Returns whether this extent intersects the other one.

Public Static Functions

TemporalExtentNNPtr create(const std::string &start, const std::string &stop)

Instanciate a TemporalExtent.

Return
a new TemporalExtent.
Parameters
  • start: start.
  • stop: stop.

class VerticalExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
#include <metadata.hpp>

Vertical domain of dataset.

Remark
Simplified version of VerticalExtent from GeoAPI

Public Functions

double minimumValue()

Returns the minimum of the vertical extent.

double maximumValue()

Returns the maximum of the vertical extent.

common::UnitOfMeasureNNPtr &unit()

Returns the unit of the vertical extent.

bool isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const

Returns whether an object is equivalent to another one.

Return
true if objects are equivalent.
Parameters
  • other: other object to compare to
  • criterion: comparaison criterion.

bool contains(const VerticalExtentNNPtr &other) const

Returns whether this extent contains the other one.

bool intersects(const VerticalExtentNNPtr &other) const

Returns whether this extent intersects the other one.

Public Static Functions

VerticalExtentNNPtr create(double minimumValue, double maximumValue, const common::UnitOfMeasureNNPtr &unitIn)

Instanciate a VerticalExtent.

Return
a new VerticalExtent.
Parameters
  • minimumIn: minimum.
  • maximumIn: maximum.
  • unitIn: unit.