dividing coastline into equal interval

Hello, I needed to divide the coastline into equal interval (as shown in the image) and identify latitude and longitude of each segments of these coastline.
Basically, for each of these segment, I wish to count the frequency of storms hitting/year.
For this, I did the following:
coastlines = load('C:\Program Files\MATLAB\R2024a\toolbox\map\mapdata\coastlines.mat');
LatLimit = [15 44]; LonLimit = [60 104];
X = coastlines.coastlat((coastlines.coastlat >= LatLimit(1,1) & coastlines.coastlat <= LatLimit(1,2)),:);
Y = coastlines.coastlon((coastlines.coastlon >= LonLimit(1,1) & coastlines.coastlon <= LonLimit(1,2)),:);
However, I am unable to divide it each segmentwise, considering linear distance interval of say, 50 km and identify latitude-longitudes within those segments. Any help in this regard is deeply appreciable.

Antworten (1)

Walter Roberson
Walter Roberson am 6 Feb. 2025

0 Stimmen

See John D'Errico's File Exchange contribution interparc https://www.mathworks.com/matlabcentral/fileexchange/34874-interparc which is designed for interpolating curves at fixed distances traveled.

6 Kommentare

Poulomi
Poulomi am 6 Feb. 2025
but how to implement this function for the coastline bounded by the fixed latitude and longitude bounds?
t = linspace(0,1,250);
pt = interparc(t, X, Y);
Poulomi
Poulomi am 7 Feb. 2025
Thanks, but still it is not clear how can I divide the coastline bounded by certain latitude, longitude box, with this function at a linear increment of 50 km.
Walter Roberson
Walter Roberson am 7 Feb. 2025

Assuming that the distances are such that Euclidean approximation is good enough, and assuming that the coast is continuous:

You can calculate the total distance along the coast using

 D = sum(sqrt(diff(X).^2 + diff(Y).^2))

This allows you to calculate the fractional increment such that the adjacent distance is 50 km.

Walter Roberson
Walter Roberson am 7 Feb. 2025

I said "assuming that the coast is continuous". It appears that works for your situation. It would be a nuisance if it did not, partly because it would not be defined what distance should be measured over any jump in the coast.

Walter Roberson
Walter Roberson am 7 Feb. 2025

Looking at the map, I am not certain that using Euclidean approximation of the total distance would be good enough for your purposes. On the other hand, interparc expects Euclidean coordinates I expect.

You might need to convert map coordinates to some kind of linear coordinates before using interparc

Melden Sie sich an, um zu kommentieren.

Produkte

Version

R2024a

Gefragt:

am 6 Feb. 2025

Kommentiert:

am 7 Feb. 2025

Community Treasure Hunt

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

Start Hunting!

Translated by