|||
geotiffwrite
基础语法
geotiffwrite(filename,A,R)
geotiffwrite(filename,X,cmap,R)
geotiffwrite(…,Name,Value)
输入参数变量释义:
filename:输入文件的名称和位置,文件扩展名必须是 “.tif” 或者 “.TIF”,变量类型为字符向量。
A:要导出的影像数据,为MNP的矩阵。坐标系为地理坐标,且默认为WGS-84,指定坐标可通过’GeoKeyDirectoryTag’和’CoordRefSysCode’实现。数据类型
数据类型 double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64 | logical
R:空间参考信息。
空间引用信息,指定为地理栅格引用对象、引用矩阵或引用向量。
如果您正在处理投影坐标系中的图像坐标,而R是一个地图栅格引用对象或引用矩阵,则相应地指定“GeoKeyDirectoryTag”或“CoordRefSysCode”。
X:待补充
cmap:RGB图像,为M*3的矩阵
示例1
% 影像的读取
basename = 'boston_ovr';
imagefile = [basename '.jpg'];
RGB = imread(imagefile);
worldfile = getworldfilename(imagefile);
R = worldfileread(worldfile, 'geographic', size(RGB)); %读取空间参考信息
%导出影像
filename = [basename '.tif'];
geotiffwrite(filename, RGB, R)
% 显示影像
figure
usamap(RGB, R)
geoshow(filename)
示例2 读取tif处理后保存tif
% 读取tif及空间坐标信息
[A, R] = geotiffread('F:\boston.tif');
info = geotiffinfo('F:\boston.tif');
% 保存tif并使用原始数据空间坐标信息
subimage = A;
subR = R;
filename = 'boston_subimage.tif';
geotiffwrite(filename, subImage, subR, ...
'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag);
figure
mapshow(filename);
其他参数较多,可以从原始影像中读取,也可以自定义。
‘CoordRefSysCode’ :坐标系,默认EPSG:4326(即WGS84坐标系)
使用方法:'CoordRefSysCode',4326
小知识,EPSG:4326是web map中用来表示地图坐标的代码,每个坐标都有一个对应的EPSG代码,常用的WGS84代码为EPSG:4326,伪墨卡托投影代码为EPSG:3857
‘TiffTags’:结构体,内容有以下
使用方法:tifftags = sturct('Compression','LZW')
重点!!!
之前跑数据时,发现超过4GB的数据无法写入保存,这是因为geotiff有两种格式,一种是classictiff,另外一种是针对大数据的bigtiff。解决此办法就是加入字段 geotiffwrite(name,out,R,....,'TiffType','bigtiff','Tifftags',tifftags)
老版本的没有这个,如果报错,请注意版本问题。目前用的19a,19b没有问题。
【参考】
点滴分享,福泽你我!Add oil!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-10 07:13
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社