1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 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
|
"""
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."
)
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"
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
class TransformDirection(BaseEnum):
"""
.. versionadded:: 2.2.0
Supported transform directions
"""
#: Forward direction
FORWARD = "FORWARD"
#: Inverse direction
INVERSE = "INVERSE"
#: Do nothing
IDENT = "IDENT"
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"
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
|