Wolfram 语言

地理计算

重量是多少?

一个物体在重力场中的重量是其质量和在该物体所处重力场的乘积. 地球表面的重力场不是恒定的,因此相同物体的重量在不同位置有所变化. 本例对重力场的大小随海拔和纬度的变化进行了考察.

GeogravityModelData 计算地球重力场在给定位置上的几个属性.

In[1]:=
Click for copyable input
GeogravityModelData[GeoPosition[{0, 0}]]
Out[1]=

其使用了 GeoElevationData 提供的地形海拔.

In[2]:=
Click for copyable input
GeoElevationData[GeoPosition[{0, 0}]]
Out[2]=

忽略其他影响,在纬度相近而海拔更高的位置上,重力场一般较小.

In[3]:=
Click for copyable input
GeoPosition[Entity["City", {"Quito", "Pichincha", "Ecuador"}]]
Out[3]=
In[4]:=
Click for copyable input
GeoPosition[Entity["City", {"Quito", "Pichincha", "Ecuador"}]]; {GeoElevationData[%, UnitSystem -> "Metric"], GeogravityModelData[%, "Magnitude"]}
Out[4]=

计算在赤道等分点重力场的大小.

In[5]:=
Click for copyable input
equatorialgravity = GeogravityModelData[{GeoPosition[{0, -180}], GeoPosition[{5, 180}]}, "Magnitude"][[1]]
Out[5]=
In[6]:=
Click for copyable input
ListPlot[equatorialgravity, Joined -> True]
Out[6]=

下面的直方图有两个峰值,分别对应陆地区域和海洋底部.

In[7]:=
Click for copyable input
Histogram[equatorialgravity, 20]
Out[7]=

将重力场大小覆盖在地球的地势图上.

In[8]:=
Click for copyable input
equatorialgravityplot = ListPlot[equatorialgravity, Axes -> False, Joined -> True, AspectRatio -> 1/8, PlotRangePadding -> None, ImagePadding -> None, ImageSize -> 400, PlotStyle -> Red];
In[9]:=
Click for copyable input
worldmap = GeoGraphics[GeoPath["Equator"], GeoRange -> "World", ImageSize -> 400, GeoBackground -> "ReliefMap"];
In[10]:=
Click for copyable input
Overlay[{worldmap, equatorialgravityplot}, Alignment -> Center]
Out[10]=

为显示随纬度的变化,我们在经度上对重力场大小进行平均,并相对纬度显示其结果.

In[11]:=
Click for copyable input
gravity = Mean /@ GeogravityModelData[{GeoPosition[{-90, -180}], GeoPosition[{90, 180}]}, "Magnitude"];

由于添加了海拔,南极洲有一个明显的低纬度效应.

In[12]:=
Click for copyable input
ListPlot[gravity, DataRange -> {-90, 90}]
Out[12]=
In[13]:=
Click for copyable input
MinMax[gravity]
Out[13]=

因此,根据测量地点的不同,一个给定物体的重量可能会有 0.5% 的变化.

In[14]:=
Click for copyable input
MinMax[gravity]; 1 - First[%]/Last[%]

相关范例

de en es fr ja ko pt-br ru