はじめに
このツールは、ライン フィーチャに放物線を描くための Z値を格納します。Z値は一律の計数とフィーチャの属性値が指定できます。
数年前に ArcObjects で作成した VBA マクロを ArcGIS Pro で動作する Python スクリプトとして移植したものです。
ダウンロード
以下からダウンロードして利用してください。ソースコードも含まれています。
使用方法
ArcGIS Pro プロジェクトから解凍した ZIP ファイル内の *.tbx ファイルを参照し、ジオプロセシング ツールを実行してください。
パラメーター
パラメーター | 説明 | データ タイプ |
---|---|---|
入力フィーチャ | 処理するポリライン フィーチャ | FeatureLayer |
出力フィーチャクラス | 処理後のフィーチャクラス | Featureclass |
係数値 | 全フィーチャに一律でZ値をするための係数 | Double |
係数フィールド | 個々のフィーチャ毎に最大Z値を変更するためのフィールド値 | Field |
処理イメージ
補足
- ライン フィーチャクラスの座標系は地理座標系でも投影座標系でも処理できますが、ライン フィーチャの頂点間は測地線(最短経路)で結ばれます。
- Z値はライン フィーチャの座標系に基づく距離に対して、距離の中間地点のZ値が計数値となるよう放物線を描く値が内挿されます。
- 入力ライン フィーチャの距離値は座標系の値をデカルト座標とみなして計算するため、地理座標系の場合は緯度経度1度が等距離とみなされます。そのため高緯度ほど期待する放物線を描く Z値は内挿されません。
- 係数は「係数値×係数フィールド」で計算されます。係数フィールドが未指定の場合は計数値が一律で設定されます。
- 入力フィーチャの座標系が地理座標系で最短距離が経度180度を跨ぐ場合、ポリラインはマルチパートに分割され、経度180度を考慮した M値が格納されます。
※意図的に作成されたマルチ パート フィーチャの各パート M値も逆転されるため、期待する結果にはなりません。 - 本ツールは ArcGIS Pro Basic 2.5 で動作確認をしました。
コード スニペット
# 放物線を描く関数 def calculate_parabola_y(x, y_top, x_max): # 放物線を描くための二次方程式 # Y = c(X - a)^2 + b # a = 頂点のX座標 # b = 頂点のY座標 # c = 放物曲線の係数 x_top = x_max / 2 the_factor = -(y_top / x_top ** 2) return the_factor * (x - x_top) ** 2 + y_top