主要内容

geotiffwrite

编写GeoTIFF文件

描述

例子

geotiffwrite (文件名,一个,R)写地理坐标图像或数据网格,一个引用的,空间R到一个输出文件中,文件名

geotiffwrite (文件名,X,提出,R)写在索引图像X及其相关colormap,提出,文件名X引用的是空间R

例子

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

例子

全部折叠

从文件读取JPEG图像。

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

世界文件名来自图像文件的名字,把世界看文件,并创建一个引用对象。

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

图像数据和参考对象写入GeoTIFF文件。

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

创建一个地图,显示的数据文件。

图usamap (RGB, R) geoshow(文件名)

地理参考经典的TIFF文件转换为瓷砖BigTIFF文件从经典的TIFF文件中提取信息。首先,导入一个经典的波士顿和TIFF图像地图细胞引用对象。元数据从文件使用geotiffinfo

infilename =“boston.tif”;[R] = readgeoraster (infilename);信息= geotiffinfo (infilename);

指定标签包括瓷砖BigTIFF文件中。要做到这一点,从元数据提取GeoKey目录标签。然后,创建标签指定的长度和宽度。

地理标签= info.GeoTIFFTags.GeoKeyDirectoryTag;tiffTags =结构(“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:“国家平面区2001 NAD = 83”ProjLinearUnitsGeoKey: 9003
t = Tiff (outfilename);getTag (t)“TileLength”)
ans = 1024
getTag (t)“TileWidth”)
ans = 1024
关闭(t)

从WMS服务器读取数据。

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

GeoTIFF文件写入数据。

文件名= [layerName“.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(文件名)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

进口GeoTIFF图像和地图细胞周围波士顿使用引用对象readgeoraster

(RA) = readgeoraster (“boston.tif”);

农作物数据到指定的限制xlimitsylimits使用mapcrop

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

得到的信息GeoTIFF图像使用geotiffinfo。从信息中提取GeoKey目录标签。

信息= geotiffinfo (“boston.tif”);关键= 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;关键。GeographicTypeGeoKey = 4326;

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

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

验证数据被写入到文件显示在地图上。

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

这个示例中使用的海拔数据是由美国地质调查局。

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

一个= 0 (180360);latlim = (-90 - 90);lonlim = (-180 - 180);RA = georefcells (latlim lonlim,大小(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文件的元数据。在实际工作流程中,您将创建RPC系数根据TIFF扩展元数据规范。本例中没有显示如何创建有效的RPC的元数据的细节。模拟原始RPC的元数据,与RPC示例创建了一个样本TIFF文件元数据,然后使用imfinfo生读这个RPC元数据,从文件未经加工的形式。然后写这个原始的例子RPC元数据到一个文件中使用geotiffwrite函数。

创建原始RPC系数的元数据

模拟原始RPC的元数据,创建一个简单的测试文件和写一些RPC的元数据文件。对于这个测试文件,创建一个玩具形象和引用对象相关的图像。

myimage = 0 (180360);latlim = (-90 - 90);lonlim = (-180 - 180);R = georefcells (latlim lonlim、大小(模板);

创建一个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字段。请注意,UnknownTags92双打的字段包含一个数组。这是原始的RPC系数元数据,从文件中读取未加工的形式。

信息= imfinfo (“myfile.tif”);info.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系数提取元数据的信息结构。

值= info.UnknownTags.Value;

然后,构造一个RPCCoefficientTag对象,通过原始RPC元数据(92双打)的数组作为参数。

rpcdata = map.geotiff.RPCCoefficientTag(值)
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 0 0 0] SampleDenominatorCoefficients: [0 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)

验证数据写入文件,读取RPC使用TIFF文件的元数据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 0 0 0] SampleDenominatorCoefficients: [0 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组织与rows-per-strip输出文件。

数据类型:字符|字符串

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

  • 一个——- - - - - -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指定为一个c3数字矩阵。有c颜色的彩色地图,每一个都由红、绿、蓝像素值。

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“CoordRefSysCode”, 26986年

坐标参考系统代码的坐标数据,指定为逗号分隔组成的“CoordRefSysCode”和一个正整数、字符串标量或特征向量。您可以指定坐标地理或投影坐标系。如果您指定一个字符串标量或字符向量的坐标系统,包括“EPSG:”前缀。找到代码数字,看看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.LZW,Tiff.Compression.PackBits,Tiff.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.MinIsBlack,Tiff.Photometric.RGB,Tiff.Photometric.Palette,Tiff.Photometric.Separated也可以使用。

软件

文件的软件制造商。值设置为值映射,MATLAB工具箱,MathWorks公司。”。删除的值,将标签设置为空字符串或字符向量()。

RowsPerStrip

一个标量正整数值指定所需的行数每条输出文件。如果大小小于(160 - 160),geotiffwriteRowsPerStrip为1。如果您指定RowsPerStripTileWidth,有或没有TileLength,geotiffwrite一个错误的问题。

TileWidth

一个标量正整数值数量和16的倍数指定块的宽度。TileWidth如果设置的大小大于(160 - 160)。如果是这样,该值是最大的[10]瓷砖创建。如果你指定RowsPerStripTileWidth,geotiffwrite一个错误的问题。

TileLength

一个标量正整数值数量和16的倍数指定块的长度。TileLength如果设置的大小大于(160 - 160)。如果是这样,该值是最大的[10]瓷砖创建。如果你指定RowsPerStripTileLength,geotiffwrite一个错误的问题。

TIFF文件类型,指定为逗号分隔组成的“TiffType”,要么“classictiff”“bigtiff”。的“classictiff”价值创造了一个经典的TIFF文件。的“bigtiff”值创建一个BigTIFF文件。在BigTIFF格式,文件可以大于4 GB。

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

提示

版本历史

之前介绍过的R2006a

全部展开