Цилиндрическая проекция на сферу - PullRequest
1 голос
/ 12 марта 2012

У меня есть 2d массив (lat * long), содержащий информацию о высоте. Я хочу отобразить эту цилиндрическую проекцию на реальную сферу с радиусом r и построить ее.

Как бы я это сделал? Извините, что так мало информации, но я сейчас совершенно потерян ...

1 Ответ

1 голос
/ 12 марта 2012

Долгота и широта не являются цилиндрическими координатами; скорее они эквивалентны азимуту и ​​высоте в сферических координатах. На каждой широте и долготе у вас есть высота (к которой может понадобиться добавить средний радиус сферы, если она уже не является истинной высотой от центра ).

Проверьте функцию sph2cart , которая преобразует из сферических в декартовы координаты. Сначала вам нужно будет перевести градусы в радианы.

Необходимые шаги:

  1. Создать матрицу (того же размера, что и оригинал) с только долготы .
  2. Сделайте то же самое для только широты (после этого у вас должно быть 3 матрицы того же размера, что и ваш оригинал - широта, долгота, высота).
  3. Убедитесь, что эти матрицы широты и долготы находятся в радианы, не градусы
  4. Убедитесь, что информация о вашем росте от центр сферы
  5. Используйте sph2cart, чтобы получить матрицы x, y, z.
  6. Используйте surf (x, y, z), чтобы построить результаты

Замечания по sph2cart из документации:

[x, y, z] = sph2cart (азимут, угол места, r) преобразует соответствующий элементы сферических координатных массивов в декартову или XYZ, координаты. азимут, высота и r должны быть одинакового размера (или любой из них может быть скалярным). азимут и высота угловые смещения в радианах от положительной оси х и от оси х самолет соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...