Azzera filtri
Azzera filtri

Hi i created a matfile of hourly temperature 334*334*2928 . how i can convert the .mat file to Tif file ?

32 visualizzazioni (ultimi 30 giorni)
attached the screen shot
  2 Commenti
Umar
Umar il 19 Lug 2024 alle 6:20

Hi Vineetha,

To convert a .mat file to a TIF file in Matlab, you can use the following steps:

% Load the .mat file

load('hourly_temperature_data.mat');

% Reshape the data to a 3D matrix

temperature_data = reshape(hourly_temperature_data, [334, 334, 2928]);

% Loop through each slice and save as TIF

for i = 1:2928

    imwrite(temperature_data(:,:,i), ['temperature_slice_', num2str(i), '.tif']);
end

So, you load the .mat file, reshape the data to a 3D matrix, and then loop through each slice to save it as a TIF file. Each slice will be saved as a separate TIF file with a unique name. Hope this should help resolve your problem.

vineetha vincent
vineetha vincent il 19 Lug 2024 alle 6:34
Hi Umar,
Thanks for the suggestion . The converted Tif files, i couldnt able to open in Arcgis pro .

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 19 Lug 2024 alle 6:19
I suggest using the Mapping Toolbox, geotiffwrite
  3 Commenti
Umar
Umar il 19 Lug 2024 alle 8:10
Hi Walter,
Thanks for your contribution. Please correct me if I am wrong, it is preferable to use geotiffwrite instead of imwrite in Matlab because geotiffwrite allows you to write GeoTIFF files which contains georeferencing information essential for GIS applications so ArcGIS Pro can correctly interpret the spatial data.
Walter Roberson
Walter Roberson il 19 Lug 2024 alle 18:12
geotiffwrite() knows how to automatically take care of multiple bit planes.
In theory you can do the same thing by using the Tiff library, but you need to know how to handle the extra bit planes and need to know what tags to use.
One thing I just realized is that your data is double(). geotiffwrite() handles that internally. imwrite() converts double to uint8 if I recall correctly. To write double precision tiff images you need to use geotiffwrite() or you need to use the Tiff interface (there is, by the way, a file exchange contribution that correctly handles double precision tiff.)

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by