Использование Matlab для изменения картографической проекции карты geotiff

Я загрузил карту в формате GeoTiff с помощью geotiffread:

[A, cmap, refmat, bbox] = geotiffread('color_etopo1_ice_full.tif');

Поскольку эта карта как бы находится в одной из цилиндрических проекций, значит, континенты искажены. Я хочу изменить его так, чтобы вместо этого у меня была часть сферы, как учебники Mapping Toolbox от Matlab показывают, что это можно сделать для шейп-файлов. Кажется, я не могу сделать то же самое с изображением GeoTiff, и никакие учебные пособия не справляются с этим.

Может ли Matlab изменить проекцию изображения GeoTiff или мне следует использовать для него другое программное обеспечение, а затем загрузить новое изображение в Matlab, чтобы я мог нанести на него свои данные?


person MartinV    schedule 08.08.2013    source источник


Ответы (2)


Я бы использовал инструмент командной строки gdalwarp, который поставляется с утилитами gdal.

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

Я полагаю, что в Matlab есть «системная» функция для вызова утилит командной строки. Это Windows или Linux или MacOS?

person Spacedman    schedule 08.08.2013
comment
Право. Вы все еще можете получить инструменты gdal для командной строки Windows, но я не знаю, как их вызвать из Matlab... - person Spacedman; 08.08.2013

Да, можно выполнять внешние, системные команды (особенно gdalwarp). В случае версии Unix/Linux может потребоваться создание некоторых символических ссылок, прежде чем вы сможете вызывать GDAL, но это все же возможно.

У меня другой вопрос. В настоящее время я обрабатываю GeoTIFF с помощью Python (и импортирую некоторые модули). У меня нет Mapping Toolbox в Matlab, поэтому мне интересно, возможно ли выполнить некоторые вычисления с растрами в MATLAB без упомянутого набора инструментов? Это разумно? Принесет ли это мне прибыль?

person matandked    schedule 04.03.2014