度分秒の値から 10 進度の値への変換
次に示すのは、度、分、秒から 10 進表記の度単位へ変換するための簡単な数式です。
10 進度 = (秒 / 3600) + (分 / 60) + 度
度の値が負の場合は、変換を別の方法で処理する必要があります。次に 1 つの方法を示します。
10 進度 = - (秒 / 3600) - (分 / 60) + 度
次の手順は、[フィールド演算] を使用して、テーブルのフィールドにある度、分、秒で表された緯度または経度の値を 10 進表記の度単位に変換する方法を示しています。コードは VBScript で書かれていますが、他のプログラミング言語にも簡単に変換できます。度、分、秒が文字列(テキスト)として格納され、数値がスペースで区切られ、シンボルが含まれていないことを前提とします。たとえば、データは次のように格納されています。
25 35 22.3
25 は度、35 は分、22.3 は秒を表します。
出力は数値フィールドに格納されます。
手順:
- ArcMap にテーブルを追加します。
- コンテンツ ウィンドウのテーブルを右クリックして [開く] をクリックします。
- [オプション] ボタンをクリックし、[フィールドの追加] をクリックします。
- [名前] フィールドに「Lat2」と入力します。
-
[タイプ] ドロップダウン矢印をクリックし、リストから [Double] をクリックします。
Lat2 がすでにフィールド名として使用されている場合は、未使用の名前を選択してください。
- [OK] をクリックします。
- [Lat2] フィールドを右クリックし、[フィールド演算] をクリックします。
- メッセージ ボックスが表示されたら、[はい] をクリックします。
- [高度な設定] チェックボックスをオンにします。
-
以下のコードを条件式のボックスに貼り付けます。
Dim Degrees Dim Minutes Dim Seconds Dim DMS Dim DD DMS = Split([Latitude]) Degrees = CDbl(DMS(0)) Minutes = CDbl(DMS(1)) Seconds = CDbl(DMS(2)) If Degrees < 0 Then DD = -(Seconds/3600) - (Minutes/60) + Degrees Else DD = (Seconds/3600) + (Minutes/60) + Degrees End If
DMS = で始まる 6 行目では、角かっこ [ ] 内のテキストは、緯度値を含んだフィールドの名前になります。コード内の「Latitude」を、DMS 緯度値を保持する(テーブル内の)フィールドの名前と置き換えてください。
-
ダイアログ ボックス下部の [Lat2 =] ボックスに、以下のコードを貼り付けます。
CDbl(DD)
- [OK] をクリックします。
- 経度値に対して、ステップ 3 ~ 12 を繰り返します。
9/14/2013