Calculate ocean area using ETOPO
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I am wanting to calculate the area of a section of ocean (which also contains land) between two (lat,lon) points. I know I can import the ocean coverage and bathmetry in to Matlab from ETOPO, but unsure how to then get an area from this. Area would need to account for depth and bathymetry (i.e not just surface area). Is this even possible? If so I'd appreciate any pointers.
Thanks
1 commentaire
KSSV
le 9 Juil 2022
How is your domain shape? If it is a perfect rectangle, simply use lengthxbreadth.
Réponses (1)
Anurag
le 26 Nov 2023
Hi Ben,
I understand that you need to calculate the surface area of a section of the ocean between two (lat, lon) points also accounting for the depth and bathymetry. Considering both the surface area and the bathymetry, involves integrating over the three-dimensional space.
Follow the following steps to compute this:
- Load Bathymetric data. Please refer to the below documentation to know more about the “geotiffread” function: https://www.mathworks.com/matlabcentral/fileexchange/29425-geotiff-reader
[Z, R] = geotiffread('path_to_etopo_file.tif');
- Define region of interest
latRange = [startLat, endLat];
lonRange = [startLon, endLon];
- Extract Relevant Bathymetric Data. Use the coordinates to extract relevant portion of the data. Please refer to the below documentation to know more about the “find” function: https://www.mathworks.com/help/matlab/ref/find.html
latIndices = find(R.LatitudeLimits(1) <= R.LatitudeLimits(2) & R.LatitudeLimits(1) <= latRange & latRange <= R.LatitudeLimits(2));
lonIndices = find(R.LongitudeLimits(1) <= R.LongitudeLimits(2) & R.LongitudeLimits(1) <= lonRange & lonRange <= R.LongitudeLimits(2));
subZ = Z(latIndices, lonIndices);
- Calculate Volume or Area. Please refer to the below documentation to know more about the “trapz” function: https://www.mathworks.com/help/matlab/ref/trapz.html
volume = trapz(trapz(subZ, 1), 2);
Please note that the above calculations have been done with the assumption that the region of interest is small enough to ignore the curvature of earth, else you may need to convert the latitudes and longitudes to Cartesian coordinates and accounting for the earth’s radius.
Hope this helps!
Regards,
Anurag
0 commentaires
Voir également
Catégories
En savoir plus sur Oceanography and Hydrology dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!