Matlab 将矩阵导出到geotiff
我正在用MATLAB处理Landsat8数据。我正在使用函数读取数据。我进行了一些计算,并使用以下公式组合R、G和B波段:Matlab 将矩阵导出到geotiff,matlab,arcgis,projection,geotiff,satellite-image,Matlab,Arcgis,Projection,Geotiff,Satellite Image,我正在用MATLAB处理Landsat8数据。我正在使用函数读取数据。我进行了一些计算,并使用以下公式组合R、G和B波段: VIS = cat(3,R,G,B) 我还创建了一个波段比率矩阵,NDWI NDWI = B-R./(B+R) 现在我想导出VIS和NDWI,以便在ArcGis中打开它们。这意味着我需要编写一个包含空间信息的geotif文件 我上面提到的loadLandSat8函数读取以下结构(例如,仅读取一个频带时): 很明显,我需要的信息就在这里我如何使用它将VIS(或NDWI)写
VIS = cat(3,R,G,B)
我还创建了一个波段比率矩阵,NDWI
NDWI = B-R./(B+R)
现在我想导出VIS
和NDWI
,以便在ArcGis中打开它们。这意味着我需要编写一个包含空间信息的geotif文件
我上面提到的loadLandSat8
函数读取以下结构(例如,仅读取一个频带时):
很明显,我需要的信息就在这里我如何使用它将VIS
(或NDWI
)写入tif或任何包含正确地理空间信息的文件,以便在ArcGIS中查看?注意,我不希望VIS显示为黑白图像。我需要全部3个乐队
RefMatrix =
0 -30
30 0
102870 -736770
及
GeoTIFFCodes给出的投影代码为32767。我尝试了geotiffwrite
,包括参考矩阵和投影代码:
geotiffwrite('test.tif',VISt,Ref,'CoordRefSysCode',32767)
但我得到了以下错误:
使用geotifwrite
validatecordrefsyscode
(第718行)时出错“
CoordRefSysCode
”参数必须指示地理位置或投影位置
坐标参考系
geotifwrite
validateParams
(第413行)中出错coordRefSysCode=validatecordrefsyscode(S.coordRefSysCode)代码>
geotifwrite
validateInputs
(第340行)中出错
Params=validateParams(Params)代码>
geotifwrite
(第235行)
[filename,A,cmap,R,Params]=validateInputs(…
我还将每个单独的带导出为ascii文本,带有Arc读取的标题。这是可行的,但我有很多图像,我不想将所有带合并到Arc中。32767不是有效的EPSG代码。查看数据,它是WGS84,因此代码应该是4326。您可能使用了错误的代码,正确的代码是我我相信(GCS=全球坐标系)。32767不是有效的EPSG代码。查看数据,它是WGS84,因此代码应该是4326。您可能使用了错误的代码,正确的代码在GeoTIFFCodes.GCS
我相信(GCS=全球坐标系)。
geotiffwrite('test.tif',VISt,Ref,'CoordRefSysCode',32767)