主要内容

geotiffwrite

写入GeoTIFF文件

描述

例子

geotiffwrite (文件名一个R写入地理参考图像或数据网格,一个,空间上由R,转换成输出文件,文件名

geotiffwrite (文件名X提出R将索引的图像写入X以及它的相关色图,提出,文件名X在空间上由R

例子

geotiffwrite (___名称,值用一个或多个写入图像或数据网格名称,值对参数,控制输出文件的各种特征。

例子

全部折叠

从文件中读取JPEG图像。

: =“boston_ovr”;Imagefile = basename +“jpg”;RGB = imread(imagefile);

从图像文件名派生世界文件名,读取世界文件,并创建一个引用对象。

Worldfile = getworldfilename(imagefile);R = worldfileread(worldfile;“地理”、大小(RGB));

将图像数据和引用对象写入GeoTIFF文件。

Filename = basename +“.tif”;geotiffwrite(文件名,RGB, R)

创建一个映射并显示文件中的数据。

图usamap(RGB,R) geoshow(filename)

通过从经典TIFF文件中提取信息,将地理参考的经典TIFF文件转换为平顶的BigTIFF文件。首先,导入波士顿的经典TIFF图像和地图单元引用对象。从文件中获取元数据geotiffinfo

infilename =“boston.tif”;[A,R] = readgeoraster(infilename);Info = geotiffinfo(infilename);

指定要包含在平铺BigTIFF文件中的标记。为此,从元数据中提取GeoKey目录标记。然后,创建标记,指定tile的长度和宽度。

geoTags = info.GeoTIFFTags.GeoKeyDirectoryTag;tiffTags = struct(“TileLength”, 1024,“TileWidth”, 1024);

将数据写入新的GeoTIFF文件。将文件格式指定为BigTIFF“TiffType”名称-值对。来包含标记“GeoKeyDirectoryTag”“TiffTags”名称-值对。

outfilename =“boston_bigtiff.tif”;geotiffwrite (outfilename R“TiffType”“bigtiff”“GeoKeyDirectoryTag”地理标签,“TiffTags”tiffTags)

通过读取文件并查询标记来验证您已经写入了BigTIFF文件。

Biginfo = geotiffinfo(outfilename);biginfo.GeoTIFFTags.GeoKeyDirectoryTag
ans =带有字段的结构体:GTModelTypeGeoKey: 1 GTRasterTypeGeoKey: 1 ProjectedCSTypeGeoKey: 26986 PCSCitationGeoKey: 'State Plane Zone 2001 NAD = 83' ProjLinearUnitsGeoKey: 9003
t = Tiff(outfilename);getTag (t)“TileLength”
Ans = 1024
getTag (t)“TileWidth”
Ans = 1024
关闭(t)

从WMS服务器读取数据。

nasallayers = wmsfind()美国宇航局的“SearchField”“serverurl”);layerName =“bluemarbleng”;layer = refine(nasaLayers, layerName,“SearchField”“layername”“MatchType”“准确”);[A, R] = wmsread(layer(1));

将数据写入GeoTIFF文件。

filename = [layerName . filename“.tif”];geotiffwrite(文件名,R)

查看文件中的数据。

图worldmap世界geoshow(文件名)

读取两个相邻的正射影像并合并它们。

X_west = imread()“concord_ortho_w.tif”);X_east = imread()“concord_ortho_e.tif”);X = [X_west X_east];

为正射影像及其组合构造引用对象。

R_west = worldfileread(“concord_ortho_w.tfw”“平面”、大小(X_west));R_east = worldfileread“concord_ortho_e.tfw”“平面”、大小(X_east));R = R_west;R.XLimWorld = [R_west.XLimWorld(1) R_east.XLimWorld(2)];R.RasterSize = size(X);

将合并后的图像写入GeoTIFF文件。使用代码26986,表示PCS_NAD83_Massachusetts投影坐标系统。

coordRefSysCode = 26986;文件名=“concord_ortho.tif”;geotiffwrite(文件名,X, R,“CoordRefSysCode”, coordRefSysCode);

显示地图。

图mapshow(文件名)

图包含一个轴对象。axes对象包含一个image类型的对象。

为波士顿附近的区域导入GeoTIFF图像和地图单元参考对象readgeoraster

[A,RA] = readgeoraster()“boston.tif”);

将数据裁剪到指定的限制xlimitsylimits使用mapcrop

Xlimits = [764318 767678];y = [2951122 2954482];[B,RB] = mapcrop(A,RA,xlimits,ylimits);

获取有关GeoTIFF图像的信息geotiffinfo。从信息中提取GeoKey目录标记。

Info = geotiffinfo(“boston.tif”);key = info.GeoTIFFTags.GeoKeyDirectoryTag;

将裁剪后的数据和GeoKey目录标记写入文件。通过显示裁剪后的数据来验证该数据已写入文件。

文件名=“boston_subimage.tif”;geotiffwrite(文件名,B, RB,“GeoKeyDirectoryTag”,键)图mapshow(文件名)

将科罗拉多州南博尔德峰附近地区的高程数据写入GeoTIFF文件。首先,导入高程数据和地理发布参考对象。

[Z,R] = readgeoraster()“n39_w106_3arc_v2.dt1”“OutputType”“双”);

为GeoTIFF文件指定GeoKey目录标记信息作为结构。来指示数据在地理坐标系统中GTModelTypeGeoKey字段为2。属性来指示引用对象使用张贴(而不是单元格)GTRasterTypeGeoKey字段为2。指示数据引用到地理坐标参考系GeographicTypeGeoKey字段是4326。

关键。GTModelTypeGeoKey = 2;关键。GTRasterTypeGeoKey = 2;关键。geokey = 4326;

将数据和GeoKey目录标记写入文件。

文件名=“southboulder.tif”;geotiffwrite(文件名,Z, R,“GeoKeyDirectoryTag”键),

通过在地图上显示数据来验证数据已写入文件。

Usamap ([3940],[-106 -105]) g = geoshow(文件名,“DisplayType”“网”);demcmap (g.CData)

本例中使用的高程数据由美国地质调查局提供。

使用RPC元数据创建一个示例TIFF文件。为此,创建一个零数组和一个相关的引用对象。

A = 0 (180,360);拉丁语= [-90 90];[-180 -180];RA = georefcells(latlim,lonlim,size(A));

然后,创建一个RPCCoefficientTag元数据对象,并设置一些具有典型值的字段。的RPCCoefficientTag对象以可读的形式表示RPC元数据。

rpctag = map.geotiff.RPCCoefficientTag;rpctag。LineOffset = 1;rpctag。SampleOffset = 1;rpctag。LineScale = 2;rpctag。SampleScale = 2;rpctag。GeodeticHeightScale = 500;

写入图像、关联的引用对象和RPCCoefficientTag对象添加到文件。

geotiffwrite (“myfile”类风湿性关节炎,“RPCCoefficientTag”rpctag)

这个示例展示了如何将RPC系数元数据写入TIFF文件。在实际的工作流中,您将根据TIFF扩展规范创建RPC系数元数据。这个示例没有显示如何创建有效RPC元数据的细节。为了模拟原始RPC元数据,本例使用RPC元数据创建一个示例TIFF文件,然后使用imfinfo以原始的、未处理的形式从文件中读取RPC元数据。然后,该示例将此原始RPC元数据写入文件geotiffwrite函数。

创建原始RPC系数元数据

要模拟原始RPC元数据,请创建一个简单的测试文件,并将一些RPC元数据写入该文件。对于这个测试文件,创建一个玩具图像和一个与该图像关联的引用对象。

Myimage = 0 (180,360);拉丁语= [-90 90];[-180 -180];R = georefcells(latlim,lonlim,size(myimage));

创建一个RPCCoefficientTag元数据对象并设置一些字段。工具箱使用RPCCoefficientTag对象以人类可读的形式表示RPC元数据。

rpctag = map.geotiff.RPCCoefficientTag;rpctag。LineOffset = 1;rpctag。SampleOffset = 1;rpctag。LineScale = 2;rpctag。SampleScale = 2;rpctag。GeodeticHeightScale = 500;

写入图像、关联的引用对象和RPCCoefficientTag对象添加到文件。

geotiffwrite (“myfile”模板,R,“RPCCoefficientTag”rpctag)

读取原始RPC系数元数据

从测试文件中读取RPC系数元数据imfinfo函数。当遇到不熟悉的元数据时,imfinfo控件中未处理的数据UnknownTags字段。请注意UnknownTags字段包含92个双精度对象的数组。这是以未处理形式从文件中读取的原始RPC系数元数据。

Info = imfino ()“myfile.tif”);信息。UnknownTags
ans =带有字段的结构体:ID: 50844抵消:10676值:[1 1 1 1 0 0 0 2 2 1 1 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

将原始RPC元数据写入文件

将原始RPC元数据写入文件。首先,从信息结构中提取RPC系数元数据。

value = info.UnknownTags.Value;

然后,构造一个RPCCoefficientTag对象,将原始RPC元数据(92个双精度数组)作为参数传递。

rpcdata = map.geotiff. rpccoefficient enttag (value)
rpcdata = RPCCoefficientTag属性:BiasErrorInMeters: 1 RandomErrorInMeters: 1 LineOffset: 1 SampleOffset: 1 GeodeticLatitudeOffset: 0 GeodeticLongitudeOffset: 0 GeodeticHeightOffset: 0 LineScale: 2 SampleScale: 2 GeodeticLatitudeScale: 1 GeodeticLongitudeScale: 1 GeodeticHeightScale: 500 LineNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] LineDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SampleNumeratorCoefficients:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SampleDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

通过RPCCoefficientTag反对geotiffwrite函数并将RPC元数据写入文件。

geotiffwrite (“myfile2”模板,R,“RPCCoefficientTag”rpcdata)

要验证数据是否已写入文件,请使用geotiffinfo。将返回的RPC元数据与写入测试文件的元数据进行比较。

Ginfo = geotiffinfo()“myfile2”);ginfo.GeoTIFFTags.RPCCoefficientTag
ans = RPCCoefficientTag属性:BiasErrorInMeters: 1 RandomErrorInMeters: 1 LineOffset: 1 SampleOffset: 1 GeodeticLatitudeOffset: 0 GeodeticLongitudeOffset: 0 GeodeticHeightOffset: 0 LineScale: 2 SampleScale: 2 GeodeticLatitudeScale: 1 GeodeticLongitudeScale: 1 GeodeticHeightScale: 500 LineNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] LineDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SampleNumeratorCoefficients:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SampleDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

输入参数

全部折叠

输出文件的名称和位置,指定为字符串标量或字符向量。如果你的文件名包括一个扩展,它必须是“.tif”“.TIF”。如果输入,一个,大小至少为160 * 160,则输出文件为平铺GeoTIFF文件。否则,geotiffwrite将输出文件组织为逐行。

数据类型:字符|字符串

地理参考图像或数据网格,指定为下列之一:

  • 一个——- - - - - -N表示灰度图像或数据网格的数值矩阵

  • 一个——- - - - - -N——- - - - - -P表示彩色图像、多光谱图像、高光谱图像或数据网格的数值数组

的坐标一个地理和在“WGS 84”坐标系,除非你指定“GeoKeyDirectoryTag”“CoordRefSysCode”表示不同的坐标系。

数据类型:||uint8|uint16|uint32|uint64|int8|int16|int32|int64|逻辑

空间参考信息,指定为地理栅格参考对象类型GeographicCellsReferenceGeographicPostingsReference类型的地图光栅引用对象MapCellsReferenceMapPostingsReference

如果您在投影坐标系中处理图像坐标,则R是地图光栅参考对象,指定吗“GeoKeyDirectoryTag”“CoordRefSysCode”相应的行动。

geotiffwrite方法中包含的信息不被使用GeographicCRS地理栅格参考对象或ProjectedCRS映射光栅参考对象的属性。

索引的图像数据,指定为——- - - - - -N数字矩阵。

数据类型:uint8|uint16

与索引图像相关联的颜色地图X,指明为c- × 3数值矩阵。有c颜色映射中的颜色,每一种都由红色、绿色和蓝色像素值表示。

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:“CoordRefSysCode”,26986年

坐标参考系代码为数据的坐标,指定为以逗号分隔的对组成“CoordRefSysCode”和正整数、字符串标量或字符向量。您可以指定地理坐标系或投影坐标系中的坐标。如果使用字符串标量或字符向量指定坐标系统,则包含“EPSG:”前缀。要查找代码编号,请参见环境保护小组注册处中的GeoTIFF规范提示部分。

如果同时指定GeoKeyDirectoryTagCoordRefSysCode,坐标系统代码CoordRefSysCode中的坐标系统键优先于GeoKeyDirectoryTag。如果一个值指定地理坐标系统,而另一个值指定投影坐标系统,则会收到错误。

如果未为此参数指定值,则默认值为4326,表明坐标是地理上的,并且在“WGS 84”地理坐标系统。

例子:26986

例子:“EPSG: 26986”

GeoKey目录标记,指定为由“GeoKeyDirectoryTag”以及指定GeoTIFF坐标参考系统和元信息的结构。该结构包含与GeoTIFF规范中的GeoKey名称匹配的字段名。字段名不区分大小写。返回的GeoTIFF信息结构可以获得该结构geotiffinfo在野外,GeoTIFFTags。GeoKeyDirectoryTag

如果您指定GTRasterTypeGeoKey领域,geotiffwrite忽略了它。此GeoKey的值派生自R。的某些字段GeoKeyDirectoryTag对于不一致的设置,您将收到一条错误消息。例如,如果R是一个地理栅格参考对象,你指定一个ProjectedCSTypeGeoKey字段或设置GTModelTypeGeoKey字段设置为1(投影坐标系),则会收到一个错误。同样地,如果R是一个地图的栅格参考对象而你没有指定吗ProjectedCSTypeGeoKey字段或CoordRefSysCode,或GTModelTypeGeoKey字段设置为2(地理坐标系),则会收到一条错误消息。

可选RPC TIFF标记的值,指定为由“RPCCoefficientTag”和一个RPCCoefficientTag对象。

输出文件中TIFF标记的值,指定为包含的逗号分隔对“TiffTags”还有一个结构。结构的字段名与TIFF类支持的TIFF标记名匹配。金宝app字段名不区分大小写。

不能使用结构输入设置大多数TIFF标记。

TiffTags异常

BitsPerSample SubFileType GeoAsciiParamsTag
SampleFormat SubIFD GeoDoubleParamsTag
SamplesPerPixel TileByteCounts GeoKeyDirectoryTag
StripByteCounts TileOffsets ModelPixelScaleTag
StripOffsets ImageLength ModelTiepointTag
ColorMap ImageWidth ModelTransformationTag

该函数设置几个TIFF标记。与TIFF标签对应的字段名、函数设置的相应字段值、允许的值(如果与TIFF类不同)以及它们的数据类型在下表中注明。

自动TIFF标签

字段名 描述
压缩

图像压缩类型。默认值为“PackBits”。其他允许值包括“LZW”“缩小”,“没有”

数值,Tiff.Compression.LZWTiff.Compression.PackBitsTiff.Compression.Deflate,或Tiff.Compression.None也可以用。

PhotometricInterpretation

光度解释的类型。字段名可以缩短为光度。根据输入图像的特性进行设置,算法如下一个(M-by-N-by-3)它是类类型uint8uint16,则值为“RGB”。对于所有其他大小和数据类型,值为“MinIsBlack”。如果X提出提供语法,值为“调色板”。如果设置为“RGB”一个不是(M-by-N-by-3),则发出错误。允许值为“MinIsBlack”“RGB”“调色板”“分离”。数值,Tiff.Photometric.MinIsBlackTiff.Photometric.RGBTiff.Photometric.PaletteTiff.Photometric.Separated也可以用。

软件

该文件的软件制造商。设置为值MATLAB, Mapping Toolbox, The MathWorks, Inc.。要删除该值,请将标记设置为空字符串或字符向量().

RowsPerStrip

指定输出文件中每个条带所需行数的标量正整数值。如果A的大小小于(160 - 160)geotiffwriteRowsPerStrip为1。如果你指定RowsPerStripTileWidth有或没有TileLengthgeotiffwrite发出错误。

TileWidth

标量正整数值和16的倍数,指定贴图的宽度。TileWidth当A的大小大于(160 - 160)。如果是,则该值的最大值为[10]瓷砖被创建。如果两者都指定RowsPerStripTileWidthgeotiffwrite发出错误。

TileLength

标量正整数值和16的倍数,指定贴图的长度。TileLength当A的大小大于(160 - 160)。如果是,则该值的最大值为[10]瓷砖被创建。如果两者都指定RowsPerStripTileLengthgeotiffwrite发出错误。

TIFF文件的类型,指定为由逗号分隔的对组成“TiffType”,要么“classictiff”“bigtiff”。的“classictiff”value创建一个Classic TIFF文件。的“bigtiff”value创建一个BigTIFF文件。使用BigTIFF格式时,文件大小可以大于4gb。

在使用“bigtiff”格式允许您创建大于4 GB的文件,但要写入的数据必须适合内存。

提示

版本历史

R2006a之前引入

全部展开