我正在使用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)
但是我收到以下错误:
使用
{p>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中将所有的波段组合在一起。