Error in geotiff display
조회 수: 7 (최근 30일)
이전 댓글 표시
clc
clear all
filename='E:\Data\netCDF\rainfall\_Clim_Pred_LRF_New_RF25_IMD0p251990.nc';
%ncdisp(filename);
lat=ncread(filename,'LATITUDE');
lon=ncread(filename,'LONGITUDE');
transpose_lon=lon';
days=ncread(filename,'TIME');
pr=ncread(filename,'RAINFALL');
for count = 1: size(lat)
lon_array(count,:)=transpose_lon;
end
for count = 1: size(lon)
lat_array(:,count)=lat;
end
value_array=pr (:,:,2);
% load the value matrix and lat and lon arrays
value = value_array';
lat_referance = lat_array';
lon_referance = lon_array';
% Create the referencing matrix (R)
R = georasterref('RasterSize',size(value), ...
'LatitudeLimits',[min(lat) max(lat)],'LongitudeLimits',[min(lon) max(lon)]);
outfilename = 'India3.tif';
geotiffwrite(outfilename, value, R);
% [A,R] = readgeoraster(outfilename);
% mapshow(A,R);
figure
mapshow India3.tif
I want to create a geo referanced tiff file(geotiff) from a netCDF file. and i have created sucessfully as I have checked it in a GIS software. Now I want to display the geotiff file. But it is not showing. I am getting some error. I have attached the pic and code.
댓글 수: 0
답변 (1개)
Siraj
2023년 9월 29일
Hi!
I understand that you have created a geotiff file and saved it using the "geotiffwrite" function. The spatially referenced matrix "R" was created using the "georasterref" function. However, when you try to read the file and display its data using the "mapshow" function, an error occurs.
The error you are encountering indicates that there might be an issue with how the file was written or with the spatial reference matrix. To resolve this, you can try creating the reference matrix using either the "MapCellsReference" or "MapPostingsReference" type. For example.
R = georefpostings([0 1], [0 1], size(imageData));
You can refer to the following link to understand the expected format of the "R" matrix for the "mapshow" function and explore different functions available to create the "R" matrix:
As a workaround, you can try using the "geoshow" function instead of "mapshow" to display the data from the geotiff file. To understand how to use "geoshow" and its functionality, you can refer to the following link:
In the below provided code, the "geoshow" function is used to display the data from the geotiff file, and it does not produce any errors.
% Generate random image data
imageData = rand(100, 100);
% Define spatial reference information
R = georasterref('RasterSize', size(imageData), 'LatitudeLimits', [0 1], 'LongitudeLimits', [0 1]);
% Create GeoTIFF file
filename = 'random_image.tif';
geotiffwrite(filename, imageData, R);
% Display confirmation message
disp(['GeoTIFF file saved as: ' filename]);
% Read the GeoTIFF file
[A, R] = readgeoraster(filename);
% Display the GeoTIFF image using geoshow
figure
geoshow(A, R, "DisplayType","mesh");
Hope this helps.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!