1

我正在使用 MATLAB 处理 Landsat8 数据。我正在使用该loadLandSat8函数读取数据。我做了一些计算并使用以下方法组合 R、G 和 B 波段:

VIS = cat(3,R,G,B)

我还创建了一个波段比率矩阵,NDWI

NDWI = B-R./(B+R)

现在我想将两者都导出VISNDWI以便在 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 中将所有波段组合在一起。

4

0 回答 0