将矩阵导出到geotiff

时间:2017-07-12 18:12:07

标签: matlab arcgis projection geotiff satellite-image

我正在使用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”参数必须指明地理位置或预测   坐标参考系。

     {p> geotiffwrite> validateParams中的错误(第413行)
      coordRefSysCode = validateCoordRefSysCode(S.CoordRefSysCode);

     

geotiffwrite> validateInputs中的错误(第340行)
  Params = validateParams(Params);

     

geotiffwrite中的错误(第235行)
     [filename, A, cmap, R, Params] = validateInputs( ...

我还将每个单独的波段导出为带有Arc读取的标题的ascii文本。这有效,但我有很多图像,我不想在Arc中将所有的波段组合在一起。

0 个答案:

没有答案