exponenta event banner

геоизменить размеры

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

Описание

пример

[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