georesize

Изменение размера географического растра

Описание

пример

[B,RB] = georesize(A,RA,scale) возвращает растровое B то есть scale умножить размер растрового A. RA является географическим объектом растровой привязки, который задает местоположение и объем данных в A. georesize возвращает объект растровой привязки RB , связанный с возвращенным растровым B. По умолчанию georesize использует кубическую интерполяцию.

georesize сохраняет пределы растра. Если заданная шкала разделяется равномерно на количества камер в каждой размерности или количество выборок в каждой размерности минус 1, пределы выхода совпадают с входом. В противном случае georesize корректирует выходные пределы на долю размеров камер или значений интервалов между образцами.

[B,RB] = georesize(A,RA,latscale,lonscale) возвращает растровое B то есть latscale умножить на размер A в столбец (север-юг) и lonscale умножить на размер A в строку (восточно-западном) направлении.

[B,RB] = georesize(___,method) возвращает растр измененного размера, где method задает метод интерполяции.

[B,RB] = georesize(___,'Antialiasing',TF) определяет, выполнять ли сглаживание при сжатии растра. Значение по умолчанию зависит от типа интерполяции. Для интерполяции по ближайшему соседу значение по умолчанию false. Для всех других методов интерполяции по умолчанию используется true.

Примеры

свернуть все

Импорт выборки географического растра и географических камер ссылки объекта.

[Z,R] = readgeoraster('raster_sample2.tif');

Измените размер растра, используя georesize. Удвоите длину и ширину растра, задав шкалу как 2. Используйте интерполяцию по ближайшему соседу путем определения метода интерполяции следующим 'nearest'.

[Z2,R2] = georesize(Z,R,2,'nearest');

Можно также изменить размер входа растра путем определения различных шкал для направления север-юг и восток-запад.

[Z3,R3] = georesize(Z,R,3,2,'nearest');
R3.RasterSize
ans = 1×2

     6     4

Проверьте размер растра путем сравнения размера исходного растра с размером обновленных растров.

R.RasterSize
ans = 1×2

     2     2

R2.RasterSize
ans = 1×2

     4     4

R3.RasterSize
ans = 1×2

     6     4

Если растры маленькие, можно сравнить их непосредственно.

Z
Z = 2×2

     1     2
     3     4

Z2
Z2 = 4×4

     1     1     2     2
     1     1     2     2
     3     3     4     4
     3     3     4     4

Z3
Z3 = 6×4

     1     1     2     2
     1     1     2     2
     1     1     2     2
     3     3     4     4
     3     3     4     4
     3     3     4     4

Загрузите растровый набор данных, показывающий повышения суши и батиметрию для области вокруг Корейского полуострова с разрешением 12 камер на степень. Данные включают растровое изображение, korea5cи связанный с ним географический объект растровой привязки, korea5cR.

load korea5c

Просмотрите растровый набор данных, используя geoshow, указание связанного объекта растровой привязки.

geoshow(korea5c,korea5cR,'DisplayType','texturemap')

Figure contains an axes. The axes contains an object of type surface.

Измените размер растра на четверть от его первоначального размера.

[resizedKorea,resizedKoreaR] = georesize(korea5c,korea5cR,0.25);

Просмотр измененного размера растра. Обратите внимание, что geoshow сохраняет исходные пределы карты на отображении, так что, на первый взгляд, измененный размер растра выглядит таким же, как и размер оригинала. Более близкий взгляд показывает, что размер пикселей в измененном размере растра больше, чем пиксели в оригинале.

figure
geoshow(resizedKorea,resizedKoreaR,'DisplayType','texturemap')

Figure contains an axes. The axes contains an object of type surface.

Входные параметры

свернуть все

Растр, подлежащий изменению, задается как числовой или логический массив. Если A имеет более двух размерности, таких как цветовой растр в формате RGB, georesize изменение размера только первых двух размерностей.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Информация о местоположении и масштабе растра, указанная как объект растровой привязки. Чтобы преобразовать ссылочный вектор или матрицу привязки в объект растровой привязки, используйте refvecToGeoRasterReference или refmatToGeoRasterReference.

Количество изменения размера, заданное как числовой скаляр. Если scale находится в области значений [0 1], B меньше A. Если scale больше 1, B больше A.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Величина изменения размеров в направлении север-юг, указанная как числовой скаляр. Если latscale находится в области значений [0 1], B меньше A. Если latscale больше 1, B больше A.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Величина изменения размеров в восточно-западном направлении, указанная как числовой скаляр. Если lonscale находится в области значений [0 1], B меньше A. Если lonscale больше 1, B больше A.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Метод интерполяции, заданный как одно из следующих значений:

ЗначениеОписание
'nearest'Интерполяция по ближайшему соседу
'bilinear'Билинейная интерполяция
'cubic'Кубическая интерполяция

Типы данных: char | string

Выходные аргументы

свернуть все

Изменение размера растра, возврат в виде числового или логического массива.

Информация о местоположении и размерах растра, возвращаемая как географический объект растровой привязки.

Совет

  • Использование georesize с растровыми данными в координатах широты и долготы. Для работы с проективными растровыми данными, в x - и y - координатах, используйтеmapresize.

Введенный в R2019a