Computing the dimensions of a geographical area
2 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I am trying to compute the dimensions of the rectangle (or Cell) shown in blue in the map, which has been generated by geodensityplot according to the values of LatP, LonP, and respective weights.
As you can see from the figure, I tried to compute the width and the height of the rectangle with two methods:
1. I considered the average latitude/longitude and I chose the points with the maximum and minimum longitude/latitude to compute the distance and convert it in meters.
2. I simply computed the lengths of the arcs covered by the rectangle as arcLon=max(LonP)-min(LonP) and arcLat=max(LatP)-min(LatP) and computed the average distance spanned by those arcs.
My concern is that both the methods (especially the first one, that should be more accurate) are providing weird results. Indeed, from the map it is evident that the width should be around 5300 m and the height around 6200 m.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/520112/image.png)
Thank you in advance for your help!
4 个评论
回答(1 个)
Avni Agrawal
2024-5-14
I understand that you are trying to compute the dimensions of geographic area.Certainly, let's simplify and correct your approach to calculating the dimensions of cells in a geodensity plot based on latitude and longitude data.
Method 1: Distance Calculation
You're calculating the distance across latitudes and longitudes to find the dimensions of the entire area covered by your data, then dividing by the number of cells to find each cell's dimensions. Ensure you're using the `distance` function correctly with latitude and longitude values.
widthCell = 1000 * deg2km(distance(mean(latP), min(lonP), mean(latP), max(lonP))) / colsU;
heightCell = 1000 * deg2km(distance(min(latP), mean(lonP), max(latP), mean(lonP))) / rowsU;
Method 2: Arc Length Calculation
This method calculates the arc lengths from the latitude and longitude differences directly and converts these spans into distances.
widthCell = 1000 * deg2km(arcLon) / colsU;
heightCell = 1000 * deg2km(arcLat) / rowsU;
- Ensure accurate use of `distance` and `deg2km` functions.
- Verify the number of cells (`colsU` and `rowsU`) matches the divisions in your geodensity plot.
- Remember, calculations assume the Earth is a perfect sphere, which might introduce some errors, especially at high latitudes or over large distances.
I hope this helps!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Geographic Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!