Source code for pyproj.enums
"""
This module contains enumerations used in pyproj.
"""
from enum import Enum, IntFlag
class BaseEnum(Enum):
"""
Base enumeration class that handles
input as strings ignoring case.
"""
@classmethod
def create(cls, item):
"""
Handles finding the enumeration
ignoring case if provided as a string.
"""
try:
return cls(item)
except ValueError:
pass
if isinstance(item, str):
item = item.upper()
for member in cls:
if member.value == item:
return member
raise ValueError(
f"Invalid value supplied '{item}'. "
f"Only {tuple(version.value for version in cls)} are supported."
)
[docs]class WktVersion(BaseEnum):
"""
.. versionadded:: 2.2.0
Supported CRS WKT string versions
See: :c:enum:`PJ_WKT_TYPE`
"""
#: WKT Version 2 from 2015
WKT2_2015 = "WKT2_2015"
#: WKT Version 2 from 2015 Simplified
WKT2_2015_SIMPLIFIED = "WKT2_2015_SIMPLIFIED"
#: Deprecated alias for WKT Version 2 from 2019
WKT2_2018 = "WKT2_2018"
#: Deprecated alias for WKT Version 2 from 2019 Simplified
WKT2_2018_SIMPLIFIED = "WKT2_2018_SIMPLIFIED"
#: WKT Version 2 from 2019
WKT2_2019 = "WKT2_2019"
#: WKT Version 2 from 2019 Simplified
WKT2_2019_SIMPLIFIED = "WKT2_2019_SIMPLIFIED"
#: WKT Version 1 GDAL Style
WKT1_GDAL = "WKT1_GDAL"
#: WKT Version 1 ESRI Style
WKT1_ESRI = "WKT1_ESRI"
[docs]class ProjVersion(BaseEnum):
"""
.. versionadded:: 2.2.0
Supported CRS PROJ string versions
"""
#: PROJ String version 4
PROJ_4 = 4
#: PROJ String version 5
PROJ_5 = 5
[docs]class TransformDirection(BaseEnum):
"""
.. versionadded:: 2.2.0
Supported transform directions
"""
#: Forward direction
FORWARD = "FORWARD"
#: Inverse direction
INVERSE = "INVERSE"
#: Do nothing
IDENT = "IDENT"
[docs]class PJType(BaseEnum):
"""
.. versionadded:: 2.4.0
PJ Types for listing codes with :func:`pyproj.get_codes`
See: :c:enum:`PJ_TYPE`
Attributes
----------
UNKNOWN
ELLIPSOID
PRIME_MERIDIAN
GEODETIC_REFERENCE_FRAME
DYNAMIC_GEODETIC_REFERENCE_FRAME
VERTICAL_REFERENCE_FRAME
DYNAMIC_VERTICAL_REFERENCE_FRAME
DATUM_ENSEMBLE
CRS
GEODETIC_CRS
GEOCENTRIC_CRS
GEOGRAPHIC_CRS
GEOGRAPHIC_2D_CRS
GEOGRAPHIC_3D_CRS
VERTICAL_CRS
PROJECTED_CRS
COMPOUND_CRS
TEMPORAL_CRS
ENGINEERING_CRS
BOUND_CRS
OTHER_CRS
CONVERSION
TRANSFORMATION
CONCATENATED_OPERATION
OTHER_COORDINATE_OPERATION
"""
UNKNOWN = "UNKNOWN"
ELLIPSOID = "ELLIPSOID"
PRIME_MERIDIAN = "PRIME_MERIDIAN"
GEODETIC_REFERENCE_FRAME = "GEODETIC_REFERENCE_FRAME"
DYNAMIC_GEODETIC_REFERENCE_FRAME = "DYNAMIC_GEODETIC_REFERENCE_FRAME"
VERTICAL_REFERENCE_FRAME = "VERTICAL_REFERENCE_FRAME"
DYNAMIC_VERTICAL_REFERENCE_FRAME = "DYNAMIC_VERTICAL_REFERENCE_FRAME"
DATUM_ENSEMBLE = "DATUM_ENSEMBLE"
CRS = "CRS"
GEODETIC_CRS = "GEODETIC_CRS"
GEOCENTRIC_CRS = "GEOCENTRIC_CRS"
GEOGRAPHIC_CRS = "GEOGRAPHIC_CRS"
GEOGRAPHIC_2D_CRS = "GEOGRAPHIC_2D_CRS"
GEOGRAPHIC_3D_CRS = "GEOGRAPHIC_3D_CRS"
VERTICAL_CRS = "VERTICAL_CRS"
PROJECTED_CRS = "PROJECTED_CRS"
DERIVED_PROJECTED_CRS = "DERIVED_PROJECTED_CRS"
COMPOUND_CRS = "COMPOUND_CRS"
TEMPORAL_CRS = "TEMPORAL_CRS"
ENGINEERING_CRS = "ENGINEERING_CRS"
BOUND_CRS = "BOUND_CRS"
OTHER_CRS = "OTHER_CRS"
CONVERSION = "CONVERSION"
TRANSFORMATION = "TRANSFORMATION"
CONCATENATED_OPERATION = "CONCATENATED_OPERATION"
OTHER_COORDINATE_OPERATION = "OTHER_COORDINATE_OPERATION"
[docs]class GeodIntermediateFlag(IntFlag):
"""
.. versionadded:: 3.1.0
Flags to be used in Geod.[inv|fwd]_intermediate()
"""
DEFAULT = 0x0
NPTS_ROUND = 0x0
NPTS_CEIL = 0x1
NPTS_TRUNC = 0x2
DEL_S_RECALC = 0x00
DEL_S_NO_RECALC = 0x10
AZIS_DISCARD = 0x000
AZIS_KEEP = 0x100