This is a follow-up question to a previous one (Projection between EPSG:4326 and EPSG:4269 using pyproj does nothing).
When using pyproj (python 3.8.8 and pyproj 3.0.1 on windows) to project a point from EPSG:4326 (WGS84 Datum) to EPSG:4269 (NAD83 Datum), I obtain the exact same lat/lon. Howver, when projecting from EPSG:4326 to EPSG:4289 (Amersfoort Datum), there is a slight shift in the lat/lon values :
from pyproj import CRS, Transformer
from shapely.geometry import Point
from shapely.ops import transform
crs_4326 = CRS("EPSG:4326")
crs_4269 = CRS("EPSG:4269")
crs_4289 = CRS("EPSG:4289")
transformer_4326_to_4269 = Transformer.from_crs(crs_from=crs_4326, crs_to=crs_4269).transform
transformer_4326_to_4289 = Transformer.from_crs(crs_from=crs_4326, crs_to=crs_4289).transform
p = Point(-118,33) # some position in California
p1 = transform(transformer_4326_to_4269, p)
p2 = transform(transformer_4326_to_4289, p)
print(p) # returns POINT (-118 33)
print(p1) # also returns POINT (-118 33)
print(p2) # returns POINT (-118.0045882781141 32.99426819423652)
Inspecting the EPSG codes on epsg.org, I see that these three datum have three different ellipsoids. Therefore, I expect to get different results for p and p1 since I do observe a difference between p and p2. What is the cause of this behaviour ?