필터 지우기
필터 지우기

Calculate ocean area using ETOPO

조회 수: 4 (최근 30일)
Ben
Ben 2022년 7월 9일
답변: Anurag 2023년 11월 26일
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
KSSV
KSSV 2022년 7월 9일
How is your domain shape? If it is a perfect rectangle, simply use lengthxbreadth.

댓글을 달려면 로그인하십시오.

답변 (1개)

Anurag
Anurag 2023년 11월 26일
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:
[Z, R] = geotiffread('path_to_etopo_file.tif');
  • Define region of interest
latRange = [startLat, endLat];
lonRange = [startLon, endLon];
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);
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

카테고리

Help CenterFile Exchange에서 Oceanography and Hydrology에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by