Skip to content

Commit dd7df93

Browse files
authored
Remove workaround for new datum types (#693)
1 parent 6068ef8 commit dd7df93

File tree

2 files changed

+13
-23
lines changed

2 files changed

+13
-23
lines changed

pyproj/_crs.pyx

+10-23
Original file line numberDiff line numberDiff line change
@@ -1317,14 +1317,14 @@ cdef class PrimeMeridian(_CRSParts):
13171317

13181318

13191319
_DATUM_TYPE_MAP = {
1320-
"GeodeticReferenceFrame": "Geodetic Reference Frame",
1321-
"DynamicGeodeticReferenceFrame": "Dynamic Geodetic Reference Frame",
1322-
"VerticalReferenceFrame": "Vertical Reference Frame",
1323-
"DynamicVerticalReferenceFrame": "Dynamic Vertical Reference Frame",
1324-
"DatumEnsemble": "Datum Ensemble",
1325-
"TemporalDatum": "Temporal Datum",
1326-
"EngineeringDatum": "Engineering Datum",
1327-
"ParametricDatum": "Parametric Datum",
1320+
PJ_TYPE_GEODETIC_REFERENCE_FRAME: "Geodetic Reference Frame",
1321+
PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME: "Dynamic Geodetic Reference Frame",
1322+
PJ_TYPE_VERTICAL_REFERENCE_FRAME: "Vertical Reference Frame",
1323+
PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME: "Dynamic Vertical Reference Frame",
1324+
PJ_TYPE_DATUM_ENSEMBLE: "Datum Ensemble",
1325+
PJ_TYPE_TEMPORAL_DATUM: "Temporal Datum",
1326+
PJ_TYPE_ENGINEERING_DATUM: "Engineering Datum",
1327+
PJ_TYPE_PARAMETRIC_DATUM: "Parametric Datum",
13281328
}
13291329

13301330
_PJ_DATUM_TYPE_MAP = {
@@ -1338,19 +1338,6 @@ _PJ_DATUM_TYPE_MAP = {
13381338
}
13391339

13401340

1341-
cdef _get_datum_type_name(PJ_CONTEXT* context, PJ* datum):
1342-
# workaround: https://github.com/OSGeo/PROJ/pull/2274
1343-
cdef const char* proj_json_string = proj_as_projjson(
1344-
context,
1345-
datum,
1346-
NULL,
1347-
)
1348-
if proj_json_string == NULL:
1349-
return None
1350-
json_dict = json.loads(cstrdecode(proj_json_string))
1351-
return _DATUM_TYPE_MAP.get(json_dict["type"])
1352-
1353-
13541341
cdef class Datum(_CRSParts):
13551342
"""
13561343
.. versionadded:: 2.2.0
@@ -1378,7 +1365,7 @@ cdef class Datum(_CRSParts):
13781365
datum.context = context
13791366
datum.projobj = datum_pj
13801367
datum._set_base_info()
1381-
datum.type_name = _get_datum_type_name(datum.context, datum.projobj)
1368+
datum.type_name = _DATUM_TYPE_MAP[proj_get_type(datum.projobj)]
13821369
return datum
13831370

13841371
@staticmethod
@@ -1458,7 +1445,7 @@ cdef class Datum(_CRSParts):
14581445
)
14591446
if (
14601447
datum_pj == NULL or
1461-
_get_datum_type_name(context, datum_pj) is None
1448+
proj_get_type(datum_pj) not in _DATUM_TYPE_MAP
14621449
):
14631450
proj_destroy(datum_pj)
14641451
proj_context_destroy(context)

pyproj/proj.pxi

+3
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ cdef extern from "proj.h":
187187
PJ_TYPE_TRANSFORMATION
188188
PJ_TYPE_CONCATENATED_OPERATION
189189
PJ_TYPE_OTHER_COORDINATE_OPERATION
190+
PJ_TYPE_TEMPORAL_DATUM
191+
PJ_TYPE_ENGINEERING_DATUM
192+
PJ_TYPE_PARAMETRIC_DATUM
190193

191194
PJ_TYPE proj_get_type(const PJ *obj)
192195
const char* proj_get_name(const PJ *obj)

0 commit comments

Comments
 (0)