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