In order to apply shapely.affinity.scale
(see documentation) I have had to transform a series of geodetic coordinates to projected coordinates, see python - UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect - Stack Overflow and UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect for context
All my coordinates are within a bounding box defined as 35.5, -11.0, 71.5, 31.5 (South, West, North, East) covering most of Europe.
Transformation of e.g. 54.1767° latitude and 7.8911° longitude from EPSG:4326 (WGS 84) to EPSG:4936 (ETRS89) results in X: 3705858.6428144597 and Y: 513643.6629113175. But the reverse transformation results in 0° latitude and 7.8911° longitude! So something is wrong.
Transformation from EPSG:4326 to EPSG:3034 (ETRS89-extended / LCC Europe) and back to EPSG:4326 works just fine.
Both coordinate systems (EPSG:4936 and EPSG:3034) cover the same area (WGS84 bounds: -16.1 32.88, 40.18 84.73) and the coordinates used fall within these bounds.
What limitation of coordinates transformations am I missing?
UPDATE: a Minimal, Reproducible Example in Python
In [1]: import geopandas as gpd
import pandas as pd
import shapely
In [2]: point = shapely.Point([7.8911,54.1767])
In [3]: gdf = gpd.GeoDataFrame(index=[0], crs="epsg:4326",
geometry=[point])
In [4]: # transform point from WGS 84 to ETRS89
gdf["geometry"].to_crs(4936)
Out[4]: 0 POINT (3705858.64281 513643.66291)
Name: geometry, dtype: geometry
In [5]: # transform point from WGS 84 to ETRS89 and back to WGS 84
gdf["geometry"].to_crs(4936).to_crs(4326)
Out[5]: 0 POINT (7.89110 0.00000)
Name: geometry, dtype: geometry
In [6]: # transform point from WGS 84 to ETRS89-extended
gdf["geometry"].to_crs(3034)
Out[6]: 0 POINT (3866814.669 3036011.045)
Name: geometry, dtype: geometry
In [7]: # transform point from WGS 84 to ETRS89-extended and back to WGS 84
gdf["geometry"].to_crs(3034).to_crs(4326)
Out[7]: 0 POINT (7.89110 54.17670)
Name: geometry, dtype: geometry