Projected to Geographical conversion breaks with Lambert_Conformal_Conic_2SP
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia con la riproduzione Python fornita e con l’entry point mikecore.Projections.MapProjection, confrontando Proj2Geo con Geo2Proj per la proiezione Lambert_Conformal_L擎Conic_2SP. Traccia il motivo per cui la conversione inversa restituisce (444.87039857071056, nan), quindi verifica che la stessa coppia di coordinate venga convertita nei valori geografici attesi senza compromettere il caso Transverse_Mercator funzionante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
I had issues in mikeio when trying to create a Dfs2 file with a Lambert_Conformal_Conic_2SP projection. I can do this succesfully when trying manually (i.e. in MIKE Zero GUI), and in mikecore. So I traced the issue to the mikecore.projections.MapProjection class used to setup the Dfs2 projection info for the Dfs2 builder: when it tries to convert projected coordinates it runs into numerical issues. See example below:
Fail case: Lambert_Conformal_Conic_2SP projection
from mikecore.Projections import MapProjection
# The projected and geographic coordinates here are the same
# This can be converted back and forth using the Datum Converter tool in MIKE Zero
origin_projected = [ -65900.32888812723, -678217.039068304]
origin_geographic = [ 24.01529,-34.987278]
# Custom projection string
proj_str = 'PROJCS["Custom",GEOGCS["Unused",DATUM["User defined",SPHEROID["WGS 1984",6378137,298.257223563]],'+\
'PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],'+\
'PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",24.751587],'+\
'PARAMETER["Standard_Parallel_1",-40],PARAMETER["Standard_Parallel_2",-10],'+\
'PARAMETER["Latitude_Of_Origin",-28.702538],UNIT["Meter",1]]'
# Try conversion using MIKE MapProjection
proj_core = MapProjection.Create(proj_str)
# Projected to Geographic Fails
print(proj_core.Proj2Geo(*origin_projected))
# Geographic to Projected works
print(proj_core.Geo2Proj(*origin_geographic))
>>> (444.87039857071056, nan)
>>> (-65900.2668223073, -678217.0403999202)
As you can see the Lambert_Conformal_Conic_2SP coordinate pairs fail when trying to converted from projected to geographical coordinates, while the reverse works just fine. I haven't tested this in the .NET/C# code, but I'm confident this isn't correct behaviour.
Working case: Transverse_Mercator projection
from mikecore.Projections import MapProjection
# Coordinate info
# The projected and geographic coordinates here are the same
# This can be converted back and forth using the Datum Converter tool in MIKE Zero
origin_projected = [ -89907.8133323,-3873624.5460040]
origin_geographic = [ 24.01529,-34.987278]
# Custom projection string
proj_str = 'PROJCS["WG25",GEOGCS["Unused",DATUM["User defined",SPHEROID["WGS 1984",6378137,298.257223563]],'+\
'PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],'+\
'PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",25],PARAMETER["Scale_Factor",1],'+\
'PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]'
# Try conversion using MIKE MapProjection
proj_core = MapProjection.Create(proj_str)
# Projected to Geographic Fails
print(proj_core.Proj2Geo(*origin_projected))
# Geographic to Projected works
print(proj_core.Geo2Proj(*origin_geographic))
>>> (24.015290000000082, -34.9872779999965)
>>> (-89907.81333230426, -3873624.5460043526)
Success - works as expected!
- Lingua principale
- Python
- Stelle
- 5
- Fork
- 1
- Merge medio
- 9h 31m
- PR unite (30g)
- 8
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DHI/mikecore-python
-
Don't duplicate version numbers - use version from pyproject.tomlForse già presa @ryan-kipawa l’ha presa 1 giorno fa. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DHI/mikecore-python#70 ·
I maintainer di solito rispondono entro 1 giorno
-
Four test assertions carried over from the C# suite are still commented outForse già presa @ryan-kipawa l’ha presa 11 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DHI/mikecore-python#49 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
DHI/mikecore-python#72 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Enable flake8-bugbear (B) and review further ruff rule setsForse già presa @ryan-kipawa l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
DHI/mikecore-python#71 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
DHI/mikecore-python#68 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di DHI/mikecore-python
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
topoteretes/cognee#5647 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Sendspin/sendspin-python-cli#291 ·
I maintainer di solito rispondono entro 6 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
awslabs/visual-asset-management-system#414 ·
I maintainer di solito rispondono entro 1 giorno
-
bug v1 v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/python-sdk#3670 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
aicell-lab/bioengine#232 ·
I maintainer di solito rispondono entro 1 giorno