Najpierw powinienem wyjaśnić, że nie mam wcześniejszego doświadczenia w tej dziedzinie, więc nie znam terminologii technicznej. Moje pytanie jest następujące:
Mam dwa zestawy danych pogodowych:
Pierwszy ma regularny układ współrzędnych (nie wiem, czy ma określoną nazwę), w zakresie od -90 do 90 i -180 do 180, a bieguny znajdują się na szerokościach -90 i 90.
W drugim, chociaż powinien on odpowiadać temu samemu regionowi, zauważyłem coś innego: szerokość i długość geograficzna nie były takie same, ponieważ mają inny punkt odniesienia (w opisie nazywany jest siatką obróconą ). Wraz z parami lat / lon otrzymujemy następujące informacje: południowy biegun lat: -35,00, południowy biegun lon: -15,00, kąt: 0,0.
Muszę przekształcić drugą parę lon / lat na pierwszą. Może to być tak proste, jak dodanie 35 do szerokości i 15 do długości, ponieważ kąt wynosi 0 i wydaje się prostą zmianą, ale nie jestem pewien.
Edycja: Mam informacje o współrzędnych są następujące
http://rda.ucar.edu/docs/formats/grib/gribdoc/llgrid.html
Najwyraźniej drugi układ współrzędnych jest określony przez ogólny obrót kuli
„Jeden z tych parametrów to:
Szerokość geograficzna w stopniach południowego bieguna układu współrzędnych, na przykład dotknięcie;
Długość geograficzna w stopniach południowego bieguna układu współrzędnych, na przykład lambdap;
Kąt obrotu w stopniach wokół nowej osi biegunowej (mierzony zgodnie z ruchem wskazówek zegara, patrząc od bieguna południowego do północnego) układu współrzędnych, przy założeniu, że nową oś uzyskano najpierw poprzez obrócenie kuli o stopnie lambda wokół geograficznej osi biegunowej , a następnie obracanie o (90 + dotknięcie) stopni, tak aby biegun południowy poruszał się wzdłuż (wcześniej obróconego) południka Greenwich. ”
ale wciąż nie wiem, jak przekonwertować to na pierwsze.
angle=0.0
, masz na myśli łożysko ? Mam plik netcdf ze współrzędnymi obróconego bieguna, ale nie ma wzmianki o żadnym kącie.Odpowiedzi:
Ręczne odwrócenie obrotu powinno załatwić sprawę; powinien gdzieś istnieć wzór na obracanie sferycznych układów współrzędnych, ale ponieważ nie mogę go znaleźć, oto pochodna ( „ oznacza obrócony układ współrzędnych; normalne współrzędne geograficzne używają prostych symboli):
Najpierw przekonwertuj dane w drugim zestawie danych ze sferycznego (lon ', lat') na (x ', y', z '), używając:
Następnie użyj dwóch macierzy obrotu, aby obrócić drugi układ współrzędnych, tak aby pokrywał się z pierwszym „normalnym”. Będziemy obracać osie współrzędnych, abyśmy mogli użyć macierzy obrotu osi . Musimy odwrócić znak w macierzy ϑ, aby pasował do sensu obrotu stosowanego w definicji ECMWF, który wydaje się różnić od standardowego kierunku dodatniego.
Ponieważ cofamy obrót opisany w definicji układu współrzędnych, najpierw obracamy o ϑ = - (90 + lat0) = -55 stopni wokół osi y '(wzdłuż obróconego południka Greenwich), a następnie o φ = - lon0 = +15 stopni wokół osi Z):
Po rozwinięciu staje się:
Następnie przekonwertuj z powrotem na „normalny” (lat, lon) za pomocą
Jeśli nie masz atan2, możesz go zaimplementować samodzielnie, używając atan (t / x) i sprawdzając znaki xiy
Przed użyciem funkcji trygonometrycznych przekonwertuj wszystkie kąty na radiany, aby uzyskać dziwne wyniki; przelicz z powrotem na stopnie, jeśli tak wolisz ...
Przykład (obrócone współrzędne kuli ==> standardowe współrzędne geograficzne):
biegun południowy obróconego CS to (lat0, lon0)
(-90 °, *) ==> (-35 °, -15 °)
głównym południkiem obróconego CS jest południk -15 ° geograficznie (obrócony o 55 ° w kierunku północnym)
(0 °, 0 °) ==> (55 °, -15 °)
symetria wymaga, aby oba równiki przecinały się pod kątem 90 ° / -90 ° w nowym CS lub 75 ° / -105 ° we współrzędnych geograficznych
(0 °, 90 °) ==> (0 °, 75 °)
(0 °, -90 °) ==> (0 °, -105 °)
EDYCJA: Przepisałem odpowiedź dzięki bardzo konstruktywnemu komentarzowi whuber'a: macierze i rozwinięcie są teraz zsynchronizowane, używając odpowiednich znaków dla parametrów obrotu; dodano odniesienie do definicji macierzy; usunięto atan (t / x) z odpowiedzi; dodane przykłady konwersji.
EDYCJA 2: Możliwe jest uzyskanie wyrażeń dla tego samego wyniku bez wyraźnej transformacji w przestrzeń kartezjańską.
x
,y
,z
W rezultacie może być podstawiona przez odpowiadające im wyrażenia, a tym samym mogą być powtarzanex'
,y'
az'
. Po zastosowaniu niektórych tożsamości trygonometrycznych pojawiają się następujące wyrażenia jednoetapowe:źródło
Jeśli ktoś jest zainteresowany, udostępniłem skrypt MATLAB na wymianie plików, przekształcając zwykłe lat / lon w obrócone lat / lon i odwrotnie: Obrócona transformacja siatki
źródło
Transformację tę można również obliczyć za pomocą oprogramowania proj (przy użyciu wiersza polecenia lub programowo), wykorzystując to, co proj nazywa tłumaczeniem ukośnym (
ob_tran
) zastosowanym do transformacji latlon. Parametry projekcji do ustawienia to:o_lat_p
= szerokość geograficzna bieguna północnego => 35 ° w przykładzielon_0
= długość bieguna południowego => -15 ° w przykładzieo_lon_p
= 0dodatkowo
-m 57.2957795130823
wymagane jest (180 / pi), aby uwzględnić przewidywane wartości w stopniach.Replikacja przykładów zaproponowanych przez mkadunc daje ten sam wynik (zauważ, że w tym przypadku kolejność
lon lat
nie występuje(lat,lon)
, znaki standardowe są wpisywane na standardowym wejściu, dane wyjściowe są oznaczone przez=>
):invproj
polecenie służy do konwersji współrzędnych „rzutowanych” (tj. obróconych) na geograficzne, podczas gdyproj
robi się odwrotnie.źródło
Opracowałem stronę asp.net do konwersji współrzędnych z obróconych na nieobrócone na podstawie domen CORDEX.
Opiera się na powyższych metodach. Możesz go swobodnie używać w tym linku:
Ręczne przekształcanie obróconych lat / lon na zwykłe lat / lon
źródło
https://www.mathworks.com/matlabcentral/fileexchange/43435-rotated-grid-transform
PYTON:
źródło
Z jakiego oprogramowania korzystasz? Każde oprogramowanie GIS będzie miało funkcję pokazującą aktualne informacje o systemie / projekcji. , co może pomóc w uzyskaniu nazwy bieżącego układu współrzędnych.
Ponadto, jeśli korzystasz z ArcGIS, możesz użyć narzędzia Projekt , aby ponownie rzutować drugi zestaw danych, importując ustawienia z pierwszego.
źródło
Moduł kartopii dla pytona ma funkcję obracania biegunów. Rozumie, jak się wydaje transformacje.
https://scitools.org.uk/cartopy/docs/latest/gallery/rotated_pole.html#sphx-glr-gallery-rotated-pole-py
Chyba może być pomocna.
źródło