www.gusucode.com > map 案例源码 matlab代码程序 > map/WriteRawRPCCoefficientMetadataToFileExample.m

    %% Write Raw RPC Coefficient Metadata to GeoTIFF File
% This example shows how to write RPC coefficient metadata to a TIFF file.
% In a real workflow, you would create the RPC coefficient metadata
% according to the TIFF extension specification. This example does not show
% the specifics of how to create valid RPC metadata. To simulate raw RPC
% metadata, the example creates a sample TIFF file with RPC metadata and
% then uses |imfinfo| to read this RPC metadata in raw, unprocessed form
% from the file. The example then writes this raw RPC metadata to a file
% using the |geotiffwrite| function.
%% Create Raw RPC Coefficent Metadata
% To simulate raw RPC metadata, create a simple test file and write
% some RPC metadata to the file. For this test file, create a toy image
% and a referencing object associated with the image.

% Copyright 2015 The MathWorks, Inc.

myimage = zeros(180,360);
latlim = [-90 90];
lonlim = [-180 180];
R = georefcells(latlim,lonlim,size(myimage));
%%
% Create an RPCCoefficientTag metadata object and set some of the fields.
% The toolbox uses the RPCCoefficientTag object to represent RPC metadata
% in human readable form.
rpctag = map.geotiff.RPCCoefficientTag;
rpctag.LineOffset = 1;
rpctag.SampleOffset = 1;
rpctag.LineScale = 2;
rpctag.SampleScale = 2;
rpctag.GeodeticHeightScale = 500;
%% 
% Write the image, the associated referencing object, and the
% RPCCoefficentTag object to a file.
geotiffwrite('myfile',myimage,R,'RPCCoefficientTag',rpctag)
%% Read Raw RPC Coefficient Metadata
% Read the RPC coefficient metadata from the test file using the |imfinfo|
% function. When it encounters unfamiliar metadata, |imfinfo| returns the
% data, unprocessed, in the |UnknownTags| field. Note how the UnknownTags
% field contains an array of 92 doubles. This is the raw RPC coefficient
% metadata, read from the file in unprocessed form.
info = imfinfo('myfile.tif');
info.UnknownTags
%% Write Raw RPC Metadata to a File
% Write the raw RPC metadata to a file. First, extract the RPC coefficient
% metadata from the info structure.
value = info.UnknownTags.Value;
%%
% Then, construct an RPCCoefficientTag object, passing the raw RPC metadata
% (array of 92 doubles) as an argument. 
rpcdata = map.geotiff.RPCCoefficientTag(value)
%%
% Pass the RPCCoefficientTag object to the |geotiffwrite| function and
% write the RPC metadata to a file.
geotiffwrite('myfile2',myimage,R,'RPCCoefficientTag',rpcdata)
%%
% To verify that the data was written to the file, read the RPC metadata
% from the TIFF file using |geotiffinfo|. Compare the returned RPC metadata
% with the metadata written to the test file.
ginfo = geotiffinfo('myfile2');
ginfo.GeoTIFFTags.RPCCoefficientTag