MATLAB Answers

How to write lat,lon,data into geotiff with matlab?

8 views (last 30 days)
Yoni Verhaegen -WE-1718-
Yoni Verhaegen -WE-1718- on 22 Dec 2020
I have the following (attachment):
- 2D latitude file (240x446)
- 2D longitude file (240x446)
- 2D surface elevation change data (240x446)
How can I write these into a 2D grid geotiff file? I tried the following, but it only works for lat, lon arrays (1x240 and 1x446)...
% WRITE TO GEOTIFF
R = maprasterref( ...
'RasterSize', size(Z_2017_2018), ...
'XWorldLimits', [double(min(y(:))) double(max(y(:)))], ...
'YWorldLimits', [double(min(x(:))) double(max(x(:)))], ...
'ColumnsStartFrom', 'north', ...
'RowsStartFrom', 'west', ...
'RasterInterpretation', 'postings');
key = struct( ...
'GTModelTypeGeoKey',[], ...
'GTRasterTypeGeoKey',[], ...
'ProjectedCSTypeGeoKey',[]);
key.GTModelTypeGeoKey = 1;
key.GTRasterTypeGeoKey = 2;
key.ProjectedCSTypeGeoKey = 3413; % Greenland Polar Stereographic
geotiffwrite('gmb_GrIS_2017_2018.tif',Z_2017_2018,R,'GeoKeyDirectoryTag',key)

Answers (2)

Nitin Kapgate
Nitin Kapgate on 11 Jan 2021
You can refer to a similar question answered here. The provided solution makes use of georasterref and geotiffwrite function to write the lattitude and longitude data to the GeoTiff file.

Yoni Verhaegen -WE-1718-
Yoni Verhaegen -WE-1718- on 11 Jan 2021
Edited: Yoni Verhaegen -WE-1718- on 11 Jan 2021
For those searching for the same question: I wasn't able to write the file into a GEOTIFF in Matlab. I resolved the problem this way:
data(:,1)=lat(:);
data(:,2)=lon(:);
data(:,3)=Z_2018_2019(:);
index=find(isnan(data(:,3)));
data(index,:)=[];
csvwrite('data_smb_2018_2019.csv',data)
In that case, I have a XYZ file that I could import in GIS software. There, I converted it into a GEOTIFF file.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!