Python 计算以纬线 lat1 和 lat2 以及子午线 lon1 和 lon2 为界的表面积
Python calculate surface area bounded by the parallels lat1 and lat2 and the meridians lon1 and lon2
我正在 Python 中寻找与此 Matlab 函数 areaquad
等效的函数。
area = areaquad(lat1,lon1,lat2,lon2) returns the surface area bounded
by the parallels lat1 and lat2 and the meridians lon1 and lon2. The
output area is a fraction of the unit sphere's area of 4π, so the
result ranges from 0 to 1.
你知道我如何使用 Python 计算这个吗?
非常感谢任何提示!
计算起来并不难,如果你只需要计算球体的话。 Here是计算两个纬度之间球面总面积的公式。所以:
h = sin(lat2)-sin(lat1)
Az = 2 * pi * h
现在,我们可以简单地求出两个经度之间的区域所占的比例:
Aq = Az * (lon2-lon1)/(2*pi)
最后,要使结果成为单位球面的一部分,请将其除以 4*pi
。
将所有内容放在一起,进行简化并考虑角度单位:
A = (sind(lat2)-sind(lat1)) * deg2rad(lon2-lon1) / (4*pi);
希望你能翻译成python。
编辑:
这是我在 R2020b 中为您的测试用例获得的结果:
lat1 = -90; lat2 = -89; lon1 = -180; lon2 = 180;
A = (sind(lat2)-sind(lat1)) * deg2rad(lon2-lon1) / (4*pi)
A =
7.6152e-05
此外,关于 Aq
不存在于最终公式中:
h = sin(lat2)-sin(lat1)
Az = 2 * pi * h
Aq = Az * (lon2-lon1)/(2*pi)
= 2*pi*h*(lon2-lon1)/(2*pi) // reducing 2*pi
= h * (lon2-lon1)
= (sin(lat2)-sin(lat1))*(lon2-lon1)
A = Aq/(4*pi)
= (sin(lat2)-sin(lat1))*(lon2-lon1)/(4*pi)
我正在 Python 中寻找与此 Matlab 函数 areaquad
等效的函数。
area = areaquad(lat1,lon1,lat2,lon2) returns the surface area bounded by the parallels lat1 and lat2 and the meridians lon1 and lon2. The output area is a fraction of the unit sphere's area of 4π, so the result ranges from 0 to 1.
你知道我如何使用 Python 计算这个吗? 非常感谢任何提示!
计算起来并不难,如果你只需要计算球体的话。 Here是计算两个纬度之间球面总面积的公式。所以:
h = sin(lat2)-sin(lat1)
Az = 2 * pi * h
现在,我们可以简单地求出两个经度之间的区域所占的比例:
Aq = Az * (lon2-lon1)/(2*pi)
最后,要使结果成为单位球面的一部分,请将其除以 4*pi
。
将所有内容放在一起,进行简化并考虑角度单位:
A = (sind(lat2)-sind(lat1)) * deg2rad(lon2-lon1) / (4*pi);
希望你能翻译成python。
编辑: 这是我在 R2020b 中为您的测试用例获得的结果:
lat1 = -90; lat2 = -89; lon1 = -180; lon2 = 180;
A = (sind(lat2)-sind(lat1)) * deg2rad(lon2-lon1) / (4*pi)
A =
7.6152e-05
此外,关于 Aq
不存在于最终公式中:
h = sin(lat2)-sin(lat1)
Az = 2 * pi * h
Aq = Az * (lon2-lon1)/(2*pi)
= 2*pi*h*(lon2-lon1)/(2*pi) // reducing 2*pi
= h * (lon2-lon1)
= (sin(lat2)-sin(lat1))*(lon2-lon1)
A = Aq/(4*pi)
= (sin(lat2)-sin(lat1))*(lon2-lon1)/(4*pi)