geotiffwrite
写入GeoTIFF文件
描述
例子
将图像从JPEG文件写入GeoTIFF文件
从文件中读取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到平铺BigTIFF
通过从经典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图像写入GeoTIFF文件
从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(文件名)
写入协和正射影像到单一GeoTIFF文件
读取两个相邻的正射影像并合并它们。
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文件的子集到新的GeoTIFF文件
为波士顿附近的区域导入GeoTIFF图像和地图单元参考对象readgeoraster
。
[A,RA] = readgeoraster()“boston.tif”);
将数据裁剪到指定的限制xlimits
和ylimits
使用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文件
将科罗拉多州南博尔德峰附近地区的高程数据写入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文件
使用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系数元数据写入GeoTIFF文件
这个示例展示了如何将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数字数组
地理参考图像或数据网格,指定为下列之一:
一个米——- - - - - -N表示灰度图像或数据网格的数值矩阵
一个米——- - - - - -N——- - - - - -P表示彩色图像、多光谱图像、高光谱图像或数据网格的数值数组
的坐标一个
地理和在“WGS 84”
坐标系,除非你指定“GeoKeyDirectoryTag”
或“CoordRefSysCode”
表示不同的坐标系。
数据类型:双
|单
|uint8
|uint16
|uint32
|uint64
|int8
|int16
|int32
|int64
|逻辑
R
- - - - - -空间参考信息
地理栅格参考对象|地图栅格参考对象
空间参考信息,指定为地理栅格参考对象类型GeographicCellsReference
或GeographicPostingsReference
类型的地图光栅引用对象MapCellsReference
或MapPostingsReference
。
如果您在投影坐标系中处理图像坐标,则R
是地图光栅参考对象,指定吗“GeoKeyDirectoryTag”
或“CoordRefSysCode”
相应的行动。
的geotiffwrite
方法中包含的信息不被使用GeographicCRS
地理栅格参考对象或ProjectedCRS
映射光栅参考对象的属性。
X
- - - - - -索引图像
米——- - - - - -N数字矩阵
索引的图像数据,指定为米——- - - - - -N数字矩阵。
数据类型:uint8
|uint16
提出
- - - - - -彩色地图
c- × 3数值矩阵
与索引图像相关联的颜色地图X
,指明为c- × 3数值矩阵。有c颜色映射中的颜色,每一种都由红色、绿色和蓝色像素值表示。
名称-值参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:“CoordRefSysCode”,26986年
CoordRefSysCode
- - - - - -坐标参考系代码
4326
(默认)|正整数|字符串标量|特征向量
坐标参考系代码为数据的坐标,指定为以逗号分隔的对组成“CoordRefSysCode”
和正整数、字符串标量或字符向量。您可以指定地理坐标系或投影坐标系中的坐标。如果使用字符串标量或字符向量指定坐标系统,则包含“EPSG:”
前缀。要查找代码编号,请参见环境保护小组注册处中的GeoTIFF规范提示部分。
如果同时指定GeoKeyDirectoryTag
和CoordRefSysCode
,坐标系统代码CoordRefSysCode
中的坐标系统键优先于GeoKeyDirectoryTag
。如果一个值指定地理坐标系统,而另一个值指定投影坐标系统,则会收到错误。
如果未为此参数指定值,则默认值为4326
,表明坐标是地理上的,并且在“WGS 84”
地理坐标系统。
例子:26986
例子:“EPSG: 26986”
GeoKeyDirectoryTag
- - - - - -GeoKey目录标签
结构
GeoKey目录标记,指定为由“GeoKeyDirectoryTag”
以及指定GeoTIFF坐标参考系统和元信息的结构。该结构包含与GeoTIFF规范中的GeoKey名称匹配的字段名。字段名不区分大小写。返回的GeoTIFF信息结构可以获得该结构geotiffinfo
在野外,GeoTIFFTags。GeoKeyDirectoryTag
。
如果您指定GTRasterTypeGeoKey
领域,geotiffwrite
忽略了它。此GeoKey的值派生自R
。的某些字段GeoKeyDirectoryTag
对于不一致的设置,您将收到一条错误消息。例如,如果R
是一个地理栅格参考对象,你指定一个ProjectedCSTypeGeoKey
字段或设置GTModelTypeGeoKey
字段设置为1(投影坐标系),则会收到一个错误。同样地,如果R
是一个地图的栅格参考对象而你没有指定吗ProjectedCSTypeGeoKey
字段或CoordRefSysCode
,或GTModelTypeGeoKey
字段设置为2(地理坐标系),则会收到一条错误消息。
RPCCoefficientTag
- - - - - -有理多项式系数(RPC)标签
RPCCoefficientTag
对象
可选RPC TIFF标记的值,指定为由“RPCCoefficientTag”
和一个RPCCoefficientTag
对象。
TiffTags
- - - - - -TIFF标签
结构
输出文件中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标签
字段名 | 描述 |
---|---|
压缩 |
图像压缩类型。默认值为 数值, |
PhotometricInterpretation |
光度解释的类型。字段名可以缩短为 |
软件 |
该文件的软件制造商。设置为值 |
RowsPerStrip |
指定输出文件中每个条带所需行数的标量正整数值。如果A的大小小于 |
TileWidth |
标量正整数值和16的倍数,指定贴图的宽度。 |
TileLength |
标量正整数值和16的倍数,指定贴图的长度。 |
TiffType
- - - - - -TIFF文件类型
“classictiff”
(默认)|“bigtiff”
TIFF文件的类型,指定为由逗号分隔的对组成“TiffType”
,要么“classictiff”
或“bigtiff”
。的“classictiff”
value创建一个Classic TIFF文件。的“bigtiff”
value创建一个BigTIFF文件。使用BigTIFF格式时,文件大小可以大于4gb。
在使用“bigtiff”
格式允许您创建大于4 GB的文件,但要写入的数据必须适合内存。
提示
如果您在投影坐标系中处理图像坐标,则
R
是一个地图光栅参考对象,设置GeoKeyDirectoryTag
或CoordRefSysCode
相应参数,。查看GeoTIFF规范中以下参数的值:
“CoordRefSysCode”
地理坐标系统的值“CoordRefSysCode”
投影坐标系统的值的GeoKey字段名称
“GeoKeyDirectoryTag”
版本历史
R2006a之前引入R2022b:geotiffwrite
不接受引用向量或引用矩阵作为输入
的geotiffwrite
函数将不接受引用向量或引用矩阵作为未来版本的输入。使用地理光栅参考对象(指定为GeographicCellsReference
或GeographicPostingsReference
对象)或地图光栅参考对象(指定为MapCellsReference
或MapPostingsReference
对象)作为输入。与引用向量和引用矩阵相比,引用对象有几个优点。
根据引用向量或引用矩阵是在地理坐标还是平面坐标中,有不同的方法来更新代码。
地理坐标
如果引用向量或引用矩阵在地理坐标中,则创建地理引用对象。
控件为单元格创建地理参考对象
georefcells
函数。为定期发布样本的栅格创建地理参考对象
georefpostings
函数。方法将引用向量转换为地理引用对象
refvecToGeoRasterReference
函数。方法将引用矩阵转换为地理引用对象
refmatToGeoRasterReference
函数。
一旦创建了引用对象,就用引用对象替换代码中引用向量或引用矩阵的使用。
平面图坐标
如果引用向量或引用矩阵在平面地图坐标中,则创建一个地图引用对象。
方法为单元格创建一个映射引用对象
maprefcells
函数。创建地图参考对象或用于定期发布样本的栅格
maprefpostings
函数。方法将引用矩阵转换为映射引用对象
refmatToMapRasterReference
函数。
一旦创建了引用对象,就用引用对象替换代码中引用向量或引用矩阵的使用。
R2018a:导出容量大于4gb的数据,请使用BigTIFF格式导出
指定要写入的GeoTIFF文件的格式为经典TIFF或BigTIFFTiffType
名称-值参数。使用BigTIFF格式可以创建大小超过4gb的文件。
MATLAB命令
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。