我正在使用 MATLAB 处理 Landsat8 数据。我正在使用该loadLandSat8
函数读取数据。我做了一些计算并使用以下方法组合 R、G 和 B 波段:
VIS = cat(3,R,G,B)
我还创建了一个波段比率矩阵,NDWI
NDWI = B-R./(B+R)
现在我想将两者都导出VIS
,NDWI
以便在 ArcGis 中打开它们。这意味着我需要编写一个包含空间信息的 geotif 文件。
我在上面引用的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( ...
我还将每个单独的波段导出为带有 Arc 读取标题的 ascii 文本。这行得通,但我有很多图像,我不想在 Arc 中将所有波段组合在一起。