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]=

下のヒストグラムには,陸地の部分と海底に対応して,大きいピークが2つある.

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 ko pt-br ru zh