ベクター(ポリライン)シェープファイルがあり、各ラインの開始点と終了点(ノード)を取得し、これらの点を含むシェープファイルを作成する必要があります。次に、ポリラインの属性テーブルに、ポイントIDに基づいて各ラインの開始点と終了点を追加する必要があります。
ArcGIS DesktopまたはQGISで簡単な方法でこれを行うにはどうすればよいですか?
ベクター(ポリライン)シェープファイルがあり、各ラインの開始点と終了点(ノード)を取得し、これらの点を含むシェープファイルを作成する必要があります。次に、ポリラインの属性テーブルに、ポイントIDに基づいて各ラインの開始点と終了点を追加する必要があります。
ArcGIS DesktopまたはQGISで簡単な方法でこれを行うにはどうすればよいですか?
回答:
それはGDALのワンライナーです。このコマンドは、選択した属性で開始ノードからシェープファイルを作成します。
ogr2ogr -f "ESRI Shapefile" -dialect sqlite output.shp -sql "select ST_StartPoint(geometry), attribute_1, attribute_2, attribute_3 from input" input.shp
エンドポイントにはST_EndPointを使用します。
QGISプラグイン「線に沿ったポイントの特定」があります。開始点とエンドポイントを導出するには、[エンドポイントの追加]を選択し、最長ラインより長い間隔を使用します。
ArcGISソリューションの場合、ライン上のポイントを作成するジオプロセシングツールを作成しました。
あなたはそれをダウンロードして、ここでコードを見ることができます:線上にポイントを作成する
タイプには、開始/終了ポイントを選択します。これにより、各ポリラインの開始点と終了点を含む新しいポイントフィーチャクラスが作成されます。
出力ポイントフィーチャクラスには、作成元のポリラインのOIDを記録するLineOIDというフィールドもあります。そうすれば、属性データを結合して戻すことができます。
以下に、パラメーターの設定方法のスクリーンショットを示します。
ArcGISを使用して、属性テーブルにエンドポイントの座標を追加するには、フィールド計算機を使用できます(ジオメトリを作成する必要はありません)。フィールド名、フィールド計算機をクリックし、以下の1行でPython構文を使用します(X座標の例):
!shape.firstPoint.X!
!shape.lastPoint.X!
すべてが!!の中にあることに注意してください
ArcGISで、アドバンストライセンスをお持ちの場合は、[データ管理ツールボックス]-> [フィーチャツールセット]-> [フィーチャポイントの頂点]ツールを[両端]オプションとともに使用できます。回線のすべての属性が保持されます。ただし、元のラインフィーチャクラスにフィールドを追加し、ラインでフィーチャIDを計算して、その値をポイントで保持する必要があります。行に別の一意の値フィールドがある場合、ツールを実行した後に結合してFIDを計算できます。最終オプションには、1対多オプションで空間結合を実行し、不良属性を持つコピーを削除する必要があります。