Экспорт матрицы в геотиф
Я обрабатываю данные Landsat8 с помощью MATLAB. Я использую loadLandSat8
Функция для чтения в данных. Я делаю некоторые вычисления и объединяю полосы R, G и B, используя:
VIS = cat(3,R,G,B)
и я также создаю матрицу соотношений полос,NDWI
NDWI = B-R./(B+R)
Теперь я хочу экспортировать обаVIS
а такжеNDWI
так что я могу открыть их в ArcGis. Это означает, что мне нужно написать файл геотифов с пространственной информацией.
loadLandSat8
Функция, на которую я ссылался выше, читает в следующей структуре (например, при чтении только одной полосы):
Filename: '/Users/icepodmacpro/Documents/DEMs/Landsat/LC8023...'
FileModDate: '28-Jan-2017 11:50:18'
FileSize: 131282818
Format: 'tif'
FormatVersion: []
Height: 7971
Width: 8231
BitDepth: 16
ColorType: 'grayscale'
ModelType: 'ModelTypeProjected'
PCS: ''
Projection: ''
MapSys: ''
Zone: []
CTProjection: 'CT_PolarStereographic'
ProjParm: [7x1 double]
ProjParmId: {7x1 cell}
GCS: 'WGS 84'
Datum: 'World Geodetic System 1984'
Ellipsoid: 'WGS 84'
SemiMajor: 6378137
SemiMinor: 6.3568e+06
PM: 'Greenwich'
PMLongToGreenwich: 0
UOMLength: 'metre'
UOMLengthInMeters: 1
UOMAngle: 'degree'
UOMAngleInDegrees: 1
TiePoints: [1x1 struct]
PixelScale: [3x1 double]
SpatialRef: [1x1 map.rasterref.MapPostingsReference]
RefMatrix: [3x2 double]
BoundingBox: [2x2 double]
CornerCoords: [1x1 struct]
GeoTIFFCodes: [1x1 struct]
GeoTIFFTags: [1x1 struct]
Ясно, что информация мне нужна здесь.Как я могу использовать это, чтобы написатьVIS
(или жеNDWI
) к tif или любому файлу с правильной геопространственной информацией, чтобы я мог просмотреть его в ArcGIS? Примечание. Я не хочу, чтобы VIS отображался как черно-белое изображение. Мне нужны все 3 группы.
RefMatrix =
0 -30
30 0
102870 -736770
а также
GeoTIFFCodes дает код проекции 32767. Я пытался geotiffwrite
включая справочную матрицу и код проекции:
geotiffwrite('test.tif',VISt,Ref,'CoordRefSysCode',32767)
Но я получаю следующую ошибку:
Ошибка при использовании
geotiffwrite
>validateCoordRefSysCode
(строка 718)
'CoordRefSysCode
Параметр должен указывать географическую или проекционную систему координат.Ошибка в
geotiffwrite
>validateParams
(строка 413)coordRefSysCode = validateCoordRefSysCode(S.CoordRefSysCode);
Ошибка в
geotiffwrite
>validateInputs
(строка 340)Params = validateParams(Params);
Ошибка в
geotiffwrite
(строка 235)[filename, A, cmap, R, Params] = validateInputs( ...
Я также экспортировал каждую отдельную полосу в виде текста ascii с заголовком, который читает Arc. Это работает, но у меня много изображений, и я не хочу объединять все группы вместе в Arc.