ITRF/NAD83CSRS coordinate transforms in Python.
Install with pip install csrspy
CSRSPY provides coordinate transformation utilities to transform coordinates between various ITRF realization and NAD83 (CSRS). Furthermore, this library provides the ability to transform between reference epochs and between GRS80 ellipsoidal heights and orthometric heights in CGG2013, CGG2013a, and HT2_2010v70 vertical datums.
CSRSPY is tested for accuracy against official tools from Natural Resources Canada (specifically, TRX and GPS-H).
If you're hoping to transform LAS/LAZ file coordinates using CSRSPY, check out LAS-TRX.
from csrspy import CSRSTransformer
from csrspy.enums import Reference, CoordType, VerticalDatum
transformer = CSRSTransformer(s_ref_frame=Reference.ITRF14, t_ref_frame=Reference.NAD83CSRS,
s_coords=CoordType.GEOG, t_coords=CoordType.UTM10,
s_epoch=2023.58, t_epoch=2002.0,
s_vd=VerticalDatum.GRS80, t_vd=VerticalDatum.CGG2013A)
in_coords = [(-123.365646, 48.428421, 0)]
out_coords = list(transformer(in_coords))
print(out_coords)
# >> [(472952.4353700947, 5363983.41690525, 18.968777521543867)]