Display USGS DTM using mapshow
Afficher commentaires plus anciens
[germany, R] = geotiffread('srtm_germany_dtm.tif');
germany = double(germany);
figure
mapshow(germany, R);
I have also converted the matrix germany of type single into doulble. but still im getting the following error:
Error using checkRefObj (line 25)
Function mapshow expected input number 2, R, to be either a 3-by-2 referencing matrix or a scalar map raster reference object. Instead its
type was: map.rasterref.GeographicCellsReference.
Error in validateMapRasterData>parseImageInputs (line 112)
refmat = checkRefObj(mapfcnname, R, size(A), R_position);
Error in validateMapRasterData>validateImageComponent (line 92)
[A, R] = parseImageInputs(mapfcnname, dataArgs{:}, cmap, rules );
Error in validateMapRasterData (line 26)
[Z, SpatialRef] = validateImageComponent(mapfcnname, ...
Error in maprastershow (line 126)
[Z, SpatialRef, displayType, HGpairs] = ...
Error in mapshow (line 228)
h = showFcn(varargin{:});
Can anyone please help me to display the geotiff file.
Réponses (2)
Kojiro Saito
le 17 Sep 2016
If you also have a tfw file, the following code should work.
[X cmap] = imread('srtm_germany_dtm.tif');
R = worldfileread('srtm_germany_dtm.tfw');
figure
X = double(X);
mapshow(X, cmap, R);
Or, do you have only a geotiff file?
3 commentaires
SUSHMA MB
le 19 Sep 2016
Kojiro Saito
le 21 Sep 2016
How about using geoshow?
[X, R] = geotiffread('srtm_germany_dtm.tif');
X = double(X);
geoshow(X, R);
Let me know whether this will view your geotiff file on MATLAB.
OJ27
le 2 Juil 2020
I tried this code and this is the error
Error using checkImage>checkRGBImage (line 60)
RGB images must be size M-by-N-by-3.
Error in checkImage (line 45)
RGB = checkRGBImage(A);
Error in validateTextureComponent (line 25)
dataArgs{imageIndex} = checkImage( ...
Error in validateGeoRasterData (line 23)
[dataArgs, R, imageIndex, rules] = validateTextureComponent( ...
Error in georastershow (line 144)
validateGeoRasterData('geoshow', dataArgs, displayType);
Error in geoshow (line 242)
h = showFcn(varargin{:});
Brian
le 26 Jan 2017
1 vote
I'm having this same problem. Using geoshow results in the same problem.
5 commentaires
Kojiro Saito
le 27 Jan 2017
What is the CoordinateSystem of your DTM file? You can see by the following,
[X,R] = geotiffread('dtm.tiff');
R
If it's geographic, it shows
CoordinateSystemType: 'geographic'
Sally Wood
le 26 Juil 2017
I'm also having the same problem:
[bathy,R] = geotiffread('B2_rgb.tif');
figure; mapshow(bathy,R)
Gives the error:
Error using checkRefObj (line 25)
Function mapshow expected input number 2, R, to be either a 3-by-2 referencing matrix or a scalar map raster reference object. Instead its type was:
map.rasterref.GeographicCellsReference.
Whilst replacing mapshow with geoshow:
[bathy,R] = geotiffread('B2_rgb.tif');
bathy=double(bathy);
figure; geoshow(bathy,R)
Gives a different error:
Error using checkImage>checkRGBImage (line 51)
RGB images must be size M-by-N-by-3.
Error in checkImage (line 36)
RGB = checkRGBImage(A);
Error in validateTextureComponent (line 20)
dataArgs{imageIndex} = checkImage( ...
Error in validateGeoRasterData (line 24)
geofcnname, dataArgs, displayType, rules);
Error in georastershow (line 144)
validateGeoRasterData('geoshow', dataArgs, displayType);
Error in geoshow (line 276)
h = showFcn(varargin{:});
With regards to the Matlab example given for geotiffread...
[boston, R2] = geotiffread('boston.tif');
figure; mapshow(boston, R); axis image off
... my file differs in a number of ways. Firstly it is MxN x4 whilst 'boston.tif' comes out MxNx 3 (presumably the 3 RGB channels?). Secondly, R comes out as a 1x1 GeographicCellsReference whilst R2 for 'boston.tif' comes out as a 1x1 MapCellsReference. Finally, the Coordinate system type is 'geographic' compared to 'planar' in the Matlab example.
I don't know enough about these types of files to figure out which difference is causing the problem, so any advice would be gratefully received. I have tried just plotting 3 layers of my tif file but this crashes my computer!
bathy=double(bathy(:,:,2:4));
figure; geoshow(bathy,R)
BN
le 13 Avr 2020
I have the same problem, Did anyone find the solution?
Stephen Blackstock
le 15 Avr 2020
I also have this problem. Why doesn't this work?
BN
le 16 Avr 2020
Dear Stephen,
Catégories
En savoir plus sur Vector and Raster Map Display dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!