MATLAB Answers


How to convert netcdf to tiff

Asked by nuwanthi arampola on 15 Jul 2019
Latest activity Commented on by nuwanthi arampola on 16 Jul 2019
I'm working with netcdf file in Ocean Color website.
I want to know How to convert them in to tiff uding matlab coding.
Could you please any one help me in this matter?


on 15 Jul 2019
NetCDF is a generic format for storing any sort of data. On the other hand, TIFF is a format for storing images only. So you'll have to clarify what you mean by converting netcdf to tiff.
Yes exactly,
I want to get the cholorophill_ a data wich is containing in this netcdf file that are available in this following link ""

Sign in to comment.


2 Answers

Answer by KSSV
on 15 Jul 2019


Yes of course.There is an error.please see bellow,
on 15 Jul 2019
YOu have to read about the functions which are given in the code......simply copy pasting will not work. The error clearly says, there is no variable named latitude in the nc file. You have to use ncdisp and see on what variable is latitude named int he ncfile.
Don't attach code as a image snippet......copy paste it and copy the error which throws up here.
on 15 Jul 2019
Please, don't post screenshots of code, paste it as text (and format it with the button). We can't copy/paste screenshots into matlab for testing.
As I said, netcdf is a generic container for scientific data. Within that container you've got all sorts of variables whose name is decided by whoever creates the file. In order to read a netcdf file you need to use the same variable names that are stored in the file. As per KSSV link, you can get these names with ncdisp, ncinfo, etc.
As the error tells you, there is no latitude variable in your netcdf file. You'll have to find out for yourself what's in your file and adapt KSSV code accordingly, but the idea is there, use ncread to read whatever is in the file, and geotiffwrite to write whatever image is there as a tiff file.
I couldn't figure out how to download a file from the link you posted. You could also attach an example file.

Sign in to comment.

Answer by nuwanthi arampola on 16 Jul 2019

OutFolder = 'D:\paper\practice2';
cd D:\paper\data\January
dinfo = dir('*.nc');
nfile = length(dinfo);
filenames = {};
for k = 1:nfile
file_name{k} = filenames{k};
lat = ncread(file_name{i},'latitude') ;
lon = ncread(file_name{i},'longititude') ;
A{k} = ncread(file_name{k},'ch1');
A{k} = (double(A{k}));
R = georasterref('RasterSize',size(A{k}),'LatitudeLimits',[min(lat),max(lat)],'LongitudeLimits',[min(lon),max(lon)]);
tiffile{k} = strcat(filenames{k},'.tif') ;


Show 1 older comment
Im sorry ,I had accepted my own answer by mistake.
I adjust i instead of k but it does not make any sense to me.
on 16 Jul 2019
Is your problem solved or not?
If not, what is the problem currently? Have you found which variables are in your file and which one of them you want to save as a tiff file?
No i did not solved it yet.
I'm stcuked with empty mind.

Sign in to comment.