Сначала я должен уточнить, что у меня нет предыдущего опыта работы в этой области, поэтому я не знаю технической терминологии. Мой вопрос заключается в следующем:
У меня есть два набора данных погоды:
Первый имеет регулярную систему координат (я не знаю, имеет ли она конкретное имя), в диапазоне от -90 до 90 и от -180 до 180, а полюса находятся на широтах -90 и 90.
Во втором, хотя она должна соответствовать той же области, я заметил что - то другое: широта и долгота не была таким же, как они имеют другую точку отсчета (в описании называются повернутые сетки ). Вместе с парами широта / долгота приходит следующая информация: широта южного полюса: -35,00, длина южного полюса: -15,00, угол: 0,0.
Мне нужно преобразовать вторую пару lon / lat в первую. Это может быть так же просто, как добавить 35 к широтам и 15 к долготам, поскольку угол равен 0, и это кажется простым смещением, но я не уверен.
Редактировать: у меня есть информация о координатах следующая
http://rda.ucar.edu/docs/formats/grib/gribdoc/llgrid.html
По-видимому, вторая система координат определяется общим вращением сферы
«Один из вариантов для этих параметров:
Географическая широта в градусах южного полюса системы координат, например тетап;
Географическая долгота в градусах южного полюса системы координат, например, лямбдап;
Угол поворота в градусах относительно новой полярной оси (измеренный по часовой стрелке при взгляде с южного на северный полюс) системы координат, предполагая, что новая ось была получена при первом повороте сферы на угол лямбдапа вокруг географической полярной оси и затем поворачивается на (90 + тетап) градусов так, чтобы южный полюс двигался вдоль (ранее повернутого) гринвичского меридиана. "
но все же я не знаю, как преобразовать это в первый.
angle=0.0
, вы имеете в виду подшипник ? У меня есть файл netcdf с координатами повернутого полюса, но ни одного угла не упоминается.Ответы:
Ручное изменение направления вращения должно сработать; где-то должна быть формула для вращения сферических систем координат, но так как я не могу ее найти, вот деривация ( ' отмечает повернутую систему координат; нормальные географические координаты используют простые символы):
Сначала преобразуйте данные во втором наборе данных из сферических (lon ', lat') в (x ', y', z '), используя:
Затем используйте две матрицы вращения, чтобы повернуть вторую систему координат так, чтобы она совпадала с первой «нормальной». Мы будем вращать оси координат, чтобы мы могли использовать матрицы вращения оси . Нам нужно поменять знак в матрице на match, чтобы соответствовать смыслу вращения, используемому в определении ECMWF, который, кажется, отличается от стандартного положительного направления.
Поскольку мы отменяем вращение, описанное в определении системы координат, мы сначала поворачиваем на by = - (90 + lat0) = -55 градусов вокруг оси y (вдоль повернутого гринвичского меридиана), а затем на φ = - lon0 = +15 градусов вокруг оси z):
В расширенном виде это становится:
Затем преобразовать обратно в «нормальный» (широта, долгота), используя
Если у вас нет atan2, вы можете реализовать его самостоятельно, используя atan (y / x) и исследуя знаки x и y
Убедитесь, что вы преобразовали все углы в радианы, прежде чем использовать тригонометрические функции, иначе вы получите странные результаты; в конце переведите обратно в градусы, если это то, что вы предпочитаете ...
Пример (координаты повернутой сферы ==> стандартные географические координаты):
Южный полюс повернутой CS есть (lat0, lon0)
(-90 °, *) ==> (-35 °, -15 °)
главный меридиан повернутого CS - это меридиан -15 ° в географическом направлении (повернут на 55 ° к северу)
(0 °, 0 °) ==> (55 °, -15 °)
симметрия требует, чтобы оба экватора пересекались под углом 90 ° / -90 ° в новой системе координат или под углом 75 ° / -105 ° в географических координатах
(0 °, 90 °) ==> (0 °, 75 °)
(0 °, -90 °) ==> (0 °, -105 °)
РЕДАКТИРОВАТЬ: Переписать ответ благодаря очень конструктивному комментарию от Whuber: матрицы и расширения теперь синхронизированы, используя соответствующие знаки для параметров вращения; добавлена ссылка на определение матриц; убрал atan (y / x) из ответа; добавлены примеры конвертации.
РЕДАКТИРОВАТЬ 2: можно получить выражения для того же результата без явного преобразования в декартово пространство.
x
,y
,z
В результате могут быть замещены их соответствующими выражениями, и то же самое можно повторить дляx'
,y'
иz'
. После применения некоторых тригонометрических тождеств появляются следующие одношаговые выражения:источник
В случае, если кому-то интересно, я поделился сценарием MATLAB на обмене файлами, преобразуя обычный лат / лон в повернутый лат / лон и наоборот: преобразование повернутой сетки
источник
Это преобразование также можно вычислить с помощью программного обеспечения proj (с использованием командной строки или программно), используя то, что proj называет наклонным переводом (
ob_tran
), применяемым к преобразованию latlon. Настраиваемые параметры проекции:o_lat_p
= широта северного полюса => 35 ° в примереlon_0
= долгота южного полюса => -15 ° в примереo_lon_p
= 0кроме того,
-m 57.2957795130823
(180 / pi) требуется для того, чтобы учитывать прогнозируемые значения в градусах.Воспроизведение примеров, предложенных mkadunc, дает тот же результат (обратите внимание, что здесь порядок
lon lat
не(lat,lon)
указан, coodinates набираются при стандартном вводе, вывод помечается=>
):invproj
Команда используется для преобразования из «спроецированных» (то есть повернутых) координат в географические, аproj
для обратного.источник
Я разработал страницу asp.net для преобразования координат из повернутых в не повернутые на основе доменов CORDEX.
Это основано на вышеуказанных методах. Вы можете свободно использовать его по этой ссылке:
Преобразование вручную повернутого лата / долготы в обычный широту / долготу
источник
https://www.mathworks.com/matlabcentral/fileexchange/43435-rotated-grid-transform
ПИТОН:
источник
Какое программное обеспечение вы используете? Каждое ГИС-программное обеспечение будет иметь возможность показывать вам текущую информацию о системе координат / проекции. , который может помочь вам в получении названия вашей текущей системы координат.
Кроме того, если вы используете ArcGIS, вы можете использовать инструмент Project для повторного проецирования второго набора данных, импортируя настройки из первого.
источник
Картопольный модуль для питона имеет вращающийся полюс. Кажется, он понимает преобразования.
https://scitools.org.uk/cartopy/docs/latest/gallery/rotated_pole.html#sphx-glr-gallery-rotated-pole-py
Может быть полезно, я думаю.
источник