Terrain Elevation Data (Contour - Level Curve)

13 views (last 30 days)
Hi, I'm new to the mapping toolbox and I would like to get the contour data for a given locale.
Here's an example image:
I would like to export the curves to kml, so that I can open them in google earth.
I'm using a GeoTIFF file that contains the terrain data and a kml file containing the boundary of the area of interest.
Below is an image of the GeoTIFF file loaded on the desktop and an image of the boundary in the kml file, respectively.
GeoTIFF:
KML:
Below is the code used to load the files:
clc, clear, close all;
kml = kml2struct("Marcador sem título.kml");
Long = kml.Lon;
Lati = kml.Lat;
%geoplot(Lati,Long)
%geobasemap streets
[A,R]=readgeoraster("s17_w048_1arc_v3.tif",'OutputType','double');
latlim = R.LatitudeLimits;
lonlim = R.LongitudeLimits;
usamap(latlim,lonlim)
geoshow(A,R,'DisplayType','surface')
demcmap(A)
It is worth noting that the KML boundary is within the geographic location to which the GeoTIFF file belongs.

Answers (1)

KSSV
KSSV on 10 Aug 2022
  1. Load the kml file. This will be your boundary.
  2. Load the geotiff file. Make the necessary spatial coordinates using meshgrid
  3. Using the boundary and data/ raster from geotiff; use inpolygon to get the coordinates inside your boundary.
  4. From the extracted indices using inpolygon, make your required raster.
  5. Use contour to plot the contour lines.
  6. Convert contour to kml using: https://in.mathworks.com/matlabcentral/fileexchange/33800-kml-contour-plot
  2 Comments
Guilherme Franklin
Guilherme Franklin on 30 Aug 2022
I was able to understand the procedure you explained, however, as the GeoTIIF file is very large, it takes a long time to process the meshgrid.
I'd like to trim the GeoTIFF within the kml boundary before doing this processing so it doesn't take too long.

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!