OnlineMapMaker logo

GISクリップツール:ベクターレイヤーを境界で切り抜く

ポイント、ライン、ポリゴンをクリップ用ポリゴンの形に切り抜き、属性をすべて残したまま、結果をGeoJSON、KML、CSVでダウンロードできます。ArcGIS ProやQGISのクリップツールと同じように動作し、ブラウザ内で処理するため、何もアップロードしません。 全画面で開く ↗

Rate this tool:
広告
広告
Loading map…
GISプロジェクトでお困りですか?サービスを見る

クリップツールでできること

クリップ(Clip)は、GISで最もよく使われるツールの一つです。2つのレイヤーを渡します。1つ目は入力レイヤーで、切り抜きたいデータです。たとえば道路、河川、バス停、土地の区画などです。2つ目はクリップレイヤーで、対象範囲を表す1つ以上のポリゴンです。たとえば市の境界やプロジェクトの敷地です。ツールはクッキーの型のように働きます。入力のうちクリップ用ポリゴンの内側にある部分だけを残し、外側はすべて捨てます。

出力のジオメトリタイプは入力と同じです。クリップした道路はラインのまま、バス停はポイントのまま、区画はポリゴンのままです。境界をまたぐ道路は、境界と交わるちょうどその位置で切られ、内側の部分だけが残ります。入力の属性テーブルはそのままコピーされるので、道路は名前、種別、その他すべてのフィールドを保ちます。クリップレイヤーが提供するのは形だけです。クリップレイヤー自身の属性は追加されません。これはArcGIS Pro、ArcMap、QGISのクリップツールと同じルールです。

このツールは、デスクトップGISを開くほどではない小さなクリップ作業のために作りました。ZIPにまとめたShapefile、GeoJSON、KML、KMZ、GPX、WKTを地図にドロップするか、自分で図形やクリップ用の四角形を描けます。入力レイヤーとクリップレイヤーを選び、Clipをクリックして結果をダウンロードします。計算はすべてオープンソースのジオメトリライブラリを使ってブラウザ内で行うため、ファイルがパソコンの外に出ることはありません。地図は軽く動作し、データに集中できるように、ベースマップなしで始まります。道路地図や衛星画像のベースマップはいつでもオンにできます。

広告
広告

対応ファイル形式

複数のファイルを一度に読み込め、形式を混ぜることもできます。各ファイルはLayersパネルでそれぞれ1つのレイヤーになります。1つのレイヤーにポイント、ライン、ポリゴンが同時に入っていても構いません。それぞれ適切な方法でクリップされます。

入力形式(アップロードできるもの)

形式拡張子説明
GeoJSON.geojson, .jsonFeatureCollection、単独のFeature、またはジオメトリのみ。GeometryCollectionは各パーツに分けられます。
Esri Shapefile.zip.shp、.shx、.dbfを1つのZIPにまとめます。.prjを入れると、投影座標のデータは読み込み時にWGS84へ変換されます。.cpgファイルで文字コードを指定できます。
KML.kmlGoogle Earthの目印です。MultiGeometryは各パーツに分けられ、ExtendedDataは属性になります。
KMZ.kmzZIP圧縮されたKMLです。アーカイブ内の最初の.kmlファイルを読み込みます。
GPX.gpxGPSファイルです。ウェイポイントはポイントに、トラックとルートはラインになります。標高値は保持されます。
WKT.wkt, .txtWell-Known Textです。ファイル全体で1つのジオメトリ、または1行に1つのジオメトリ。

出力形式(ダウンロードできるもの)

形式拡張子説明
GeoJSON.geojsonWGS84のWeb標準形式(RFC 7946)です。すべての属性を保持します。ArcGIS Pro、QGIS、ほぼすべてのWeb地図ライブラリで開けます。
KML.kmlGoogle Earthで開けます。属性は各目印のExtendedDataとして書き込まれます。
CSV (WKT).csv1フィーチャーにつき1行です。1列目にWKT形式のジオメトリ、属性ごとに1列が入ります。Excelで開け、QGISではWKT列をジオメトリとして読み込めます。

各ファイルは最大50 MBです。国全体のような非常に大きなデータセットには、今でもデスクトップGISの方が向いています。このページの下の方にある比較をご覧ください。

技術的な詳細

このツールがデータに対して何をするのかを正確にまとめました。ArcGIS ProやQGISのクリップツールをご存じなら、ほとんどが見慣れた内容のはずです。

入力ジオメトリタイプ
Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon。1つのレイヤーにすべてを混在させることもできます。
クリップのジオメトリタイプ
穴あり・穴なしのPolygonとMultiPolygon。ポリゴンを含まないレイヤーはクリップレイヤーに選べません。
複数のクリップ用ポリゴン
クリップレイヤーのすべてのポリゴンは、クリップ前に1つのマスクへ結合(ディゾルブ)されます。クリップ用ポリゴンが重なっている場所でも入力は1回しか切られないため、重複したフィーチャーはできません。
属性
入力フィーチャーの属性はすべてそのままコピーされます。クリップレイヤーの属性は追加されません(必要な場合はポリゴン交差ツールを使います)。オプションで clip_status(inside または clipped)、clip_area_m2、clip_length_m、clip_points を追加できます。
座標系
GeoJSONと同じWGS84の経度・緯度(EPSG:4326)です。.prjファイル付きのZIP形式Shapefileは、読み込み時にWGS84へ変換されます。
ジオメトリモデル
切り抜きは度単位の平面上で行います。Turf.jsや多くのWeb GISライブラリと同じモデルです。結果パネルの面積と長さは球面上(測地的)で、平方メートルとメートルで計算します。
境界のルール
クリップ境界のちょうど上にあるポイントは残ります。境界に沿って走るラインの部分も残ります。ArcGISとQGISも同じルールです。
標高(Z)
既存のZ値はその頂点に残ります。ラインを切った位置にできる新しい頂点には、両隣の頂点から線形補間したZ値が入ります。
マルチパート出力
1つのフィーチャーが複数の部分に切られた場合、ArcGIS Proと同じく、それらは1つのマルチパートフィーチャー(MultiLineString、MultiPolygon、MultiPoint)としてまとめられます。「Split multipart results」にチェックを入れると、部分ごとに1つのフィーチャーになります。
不正なジオメトリ
入力フィーチャーのジオメトリが壊れている場合(たとえば自己交差するポリゴン)、そのフィーチャーはスキップして数えられ、レイヤーの残りは通常どおりクリップされます。
制限
1ファイル50 MBまで。複数のファイルを一度にアップロードできます。速度は端末によります。数万件のフィーチャーなら通常1秒ほどでクリップできます。
プライバシー
すべてブラウザ内で動作します。ファイルもジオメトリもサーバーには送信されません。

クリップツールの使い方(ステップごと)

組み込みのサンプルデータを使った全体の流れです。自分のファイルでも同じように使えます。

ベースマップのない空のGISクリップツールの地図。描画ツール、Uploadボタン、Sample Dataボタンが表示されている
1
ステップ1: ツールを開く

地図は空の状態で、ベースマップなしで開きます。不要なものは読み込まれません。ツールバーには、Point、Line、Polygon、Clip Rectangleの描画ツール、Uploadボタン、Sample Dataボタンがあります。

区画、道路、ポイントを含むサンプルの市街地レイヤーと、穴のある緑色の調査範囲ポリゴンが空の地図に表示されている
2
ステップ2: 入力レイヤーとクリップレイヤーを追加する

ファイルを地図にドラッグ&ドロップするか、Uploadをクリックします。ここではSample Dataをクリックしました。区画、道路、ポイントを含む市街地レイヤーと、湖がくり抜かれた調査範囲のポリゴンが追加されます。

入力レイヤーとクリップレイヤーが選択され、2つのオプションのチェックボックスがあるClipパネル
3
ステップ3: レイヤーとオプションを選ぶ

Clipパネルで、入力レイヤー(切り抜くデータ)とクリップレイヤー(ポリゴンの境界)を選びます。クリップの一覧にはポリゴンを含むレイヤーだけが表示されます。clip_status、面積、長さの追加フィールドが必要か、マルチパートの結果を分割するかを決めます。

地図上のクリップ結果。区画、道路、ポイントが調査範囲で切り抜かれ、湖の部分は空いている。サイドバーに結果の概要がある
4
ステップ4: Clip Layerをクリックする

結果は塗りつぶしの新しいレイヤーとして表示され、入力レイヤーは非表示になります。結果ボックスには、入力と出力のフィーチャー数、完全に内側だった数、境界で切られた数、捨てられた数、残った面積・長さ・ポイント数の合計が表示されます。

道路ベースマップ上のクリップ済みレイヤーと、クリップされた道路の属性を表示するポップアップ
5
ステップ5: ベースマップと属性で結果を確認する

「Show basemap」にチェックを入れると、道路地図や衛星画像の上で結果を確認できます。クリップされたフィーチャーをクリックすると属性が開きます。元のフィールドがすべて残っており、オプションのクリップ用フィールドも入っています。

クリップ済みレイヤーが選択され、GeoJSON、KML、CSVのダウンロードボタンがあるExportパネル
6
ステップ6: クリップしたレイヤーをダウンロードする

Exportパネルでレイヤーを選び、GeoJSON、KML、またはWKT列付きのCSVでダウンロードします。Layersパネルの各レイヤーの横にある小さな矢印は、GeoJSONのクイックダウンロードです。

広告
広告

ポリゴン(とライン、ポイント)をクリップする方法

考え方はどのGISソフトでも同じです。一方のレイヤーが切られ、もう一方のレイヤーが切ります。このツール、ArcGIS Pro、ArcMap、QGISでポリゴンレイヤーをクリップする方法と、arcpyでスクリプトから行う方法を紹介します。

このツールの場合

切り抜きたいポリゴンと境界のポリゴンを読み込みます。ポリゴンを入力レイヤーに、境界をクリップレイヤーに選び、Clip Layerをクリックします。四角い範囲だけでよい場合は、Clip Rectangleをクリックしてから地図上で対角の2点をクリックします。四角形はすぐにクリップレイヤーになります。同じ入力レイヤー内のラインとポイントも、同じ実行でクリップされます。

ArcGIS Proの場合

ジオプロセシングウィンドウを開いて「クリップ(Clip)」を検索するか、Analysisツールボックス > Extractツールセット > Clipを開きます。Input Featuresに切り抜くレイヤー、Clip Featuresに境界を指定し、出力フィーチャクラスを選んで実行をクリックします。ArcGIS ProにはPairwise Overlayツールセットの中にPairwise Clipもあり、同じ処理を並列処理で行うため、大きなデータで高速です。どちらも入力フィーチャーの属性だけを残します。

ArcMapの場合

ArcMapでは、ArcToolbox > Analysis Tools > Extract > Clipにあり、ジオプロセシングメニューにもあります。パラメーターはArcGIS Proと同じです。EsriはArcMapを2026年3月に廃止したので、新しい作業にはArcGIS Pro、QGIS、またはこのツールをおすすめします。Clip_analysis を呼び出す古いArcMapのモデルやスクリプトは、多くの場合、少しの修正でArcGIS Proへ移行できます。

QGISの場合

ベクタ > 空間演算ツール > 切り抜く(Clip)を開きます。入力レイヤーとオーバーレイレイヤー(ポリゴンの境界)を選び、実行をクリックします。結果は一時レイヤーとして追加されるので、GeoPackageやShapefileとして保存できます。四角い範囲だけでよい場合は、プロセシングツールボックスを開き、Vector overlayグループのExtract/Clip by Extentを実行して「Clip features to extent」にチェックを入れます。

arcpy(ArcGIS用Python)の場合

ArcGIS Proでの関数は arcpy.analysis.Clip(in_features, clip_features, out_feature_class) です。古いArcMapのスクリプトでは以前の名前 arcpy.Clip_analysis を使いますが、これも今も動きます。オプションの4つ目のパラメーターでクラスター許容値(XY許容値)を指定できます。下のコードでは両方の書き方と、PyQGIS、GDAL、GeoPandasでの同じ処理を紹介します。

コードで同じクリップを行う

同じ種類のデータを毎週クリップするなら、スクリプトにすると時間を節約できます。どの例も、道路レイヤーを調査範囲のポリゴンで切り抜きます。

import arcpy

arcpy.env.workspace = r"C:\data\city.gdb"

# ArcGIS Pro: Analysis toolbox > Extract > Clip
arcpy.analysis.Clip("roads", "study_area", "roads_clip")

# Older ArcMap syntax (same tool, old name)
arcpy.Clip_analysis("roads", "study_area", "roads_clip")
# QGIS Python console: Vector > Geoprocessing Tools > Clip
processing.run("native:clip", {
    "INPUT": "C:/data/roads.shp",
    "OVERLAY": "C:/data/study_area.shp",
    "OUTPUT": "C:/data/roads_clip.gpkg",
})
# GDAL / OGR command line
ogr2ogr -clipsrc study_area.shp roads_clip.gpkg roads.shp

# GeoPandas
import geopandas as gpd
roads = gpd.read_file("roads.shp")
area = gpd.read_file("study_area.shp")
roads_clip = gpd.clip(roads, area)

私の考えでは、普通のサイズのファイルを1回だけクリップするなら、このツールがファイルから結果までの最短ルートです。何度も繰り返すクリップや、大きな処理の一部として行うクリップは、arcpyかPyQGISのスクリプトを一度書いて使い回すのがよいでしょう。

ツールの仕組み(ステップごと)

Clip Layerをクリックしてからデータがたどる流れです。どのステップもブラウザ内で動きます。

  1. 入力を読み込んで整える. すべてのファイルをWGS84のGeoJSONフィーチャーに変換します。GeometryCollectionは同じ属性を持つ別々のフィーチャーに分けるので、クリップ処理は単純なジオメトリタイプだけを扱います。
  2. クリップレイヤーをディゾルブする. クリップレイヤーのすべてのポリゴンを、ポリゴンのユニオンで1つのジオメトリ、マスク M にまとめます。穴は穴のまま残ります。重なったクリップ用ポリゴンは1つの形になるので、重なった2つのクリップ用ポリゴンの中にある道路も1回だけ残ります。
  3. バウンディングボックスによる高速判定. 入力フィーチャーごとのバウンディングボックスを M のバウンディングボックスと比べます。2つの箱が接していなければ、そのフィーチャーは内側にあり得ないので、細かい計算なしですぐに捨てます。大きなレイヤーでは、これで処理の大部分を省けます。
  4. ポイントをクリップする. 各ポイントを M に対するポイント・イン・ポリゴン判定で調べます。内側または境界上のポイントは残ります。MultiPointの場合は、内側のポイントだけが残ります。
  5. ラインをクリップする. ラインの各線分を、近くにある M の各辺と比べます。線分が辺と交わる場所をすべて見つけ、そこで切ります。次に、切った小さな部分それぞれの中点を調べ、中点が M の内側ならその部分を残します。接している部分どうしは、もう一度1本のラインにつなげます。
  6. ポリゴンをクリップする. 各ポリゴンと M の交差を、スイープライン方式のブール演算アルゴリズム(Martinez-Rueda)で求めます。これにより、M に穴がある場所には新しい穴も含めて、共通部分の面積を正確に得られます。
  7. 属性をコピーしてフィールドを追加する. 出力フィーチャーはそれぞれ、元の入力フィーチャーの全属性のコピーを受け取ります。指定があれば、clip_status と、残った面積・長さ・ポイント数を追加します。マルチパートのオプションにチェックがあれば、ここでマルチパートの結果をシングルパートに分けます。
  8. 集計して描画する. 完全に内側だった、境界で切られた、捨てられた、スキップされたフィーチャーを数え、残った面積と長さを合計し、結果を新しいレイヤーとして地図に追加します。結果が見やすいように、入力レイヤーは非表示にします。

このように分けているのは、ジオメトリタイプごとに必要な数学が違うからです。ポイントは内側か外側かの判定だけで済みます。ラインには交点が必要です。ポリゴンには完全なブール演算のオーバーレイが必要です。タイプごとに正しく、かつ最も軽い方法を使うことで、ツールを速く保っています。

クリップの理論と数学

クリップは地図上では単純に見えますが、計算幾何学の古典的な成果の上に成り立っています。ツールが使う順に紹介します。

1. 集合演算としてのクリップ

集合論で言えば、クリップは共通部分(積集合)です。入力フィーチャー a はそれぞれ、マスク M と共有する部分に置き換えられます。M と何も共有しないフィーチャーは消えます。マスクはすべてのクリップ用ポリゴンの和集合です。

Clip(A, M) = { a ∩ M  :  a ∈ A  かつ  a ∩ M ≠ ∅ }

M = M₁ ∪ M₂ ∪ … ∪ Mₖ     (すべてのクリップ用ポリゴンを先に結合)

完全なインターセクト(Intersect)との違いは属性だけです。クリップは a の属性を残し、M の属性は使いません。結果のジオメトリは同じです。

2. ポイント・イン・ポリゴン:レイキャスティング法

ある点がポリゴンの内側にあるかを判定するには、点から右向きに半直線を引き、それがポリゴンの境界と何回交わるかを数えます。奇数なら内側、偶数なら外側です。穴に特別な処理は要りません。数える辺が増えるだけです。

点 P = (x, y)。辺は (xi, yi) から (xj, yj)。

次の条件を満たすとき、辺と交わる:
  (yi > y) ≠ (yj > y)
  かつ  x < xi + (y − yi) · (xj − xi) / (yj − yi)

P は内側  ⇔  交わった辺の数が奇数

ここで使っているライブラリ(point-in-polygon-hao)は、Haoらによる改良版の判定法(2018年)を実装しています。辺のちょうど上にある点も判定できるので、ツールは境界上のポイントを意図的に残せます。

3. ラインが境界と交わる位置

p から q への線分と、a から b への境界の辺を、どちらもパラメーター表示で書きます。2つの式を2次元の外積で解くと、交点が直接求まります。

線分:  P(t) = p + t · r,   r = q − p,   0 ≤ t ≤ 1
辺:    E(u) = a + u · s,   s = b − a,   0 ≤ u ≤ 1

cross(v, w) = v.x · w.y − v.y · w.x
w = a − p

t = cross(w, s) / cross(r, s)
u = cross(w, r) / cross(r, s)

実際に交わる  ⇔  0 < t < 1  かつ  0 ≤ u ≤ 1
cross(r, s) = 0  ⇔  線分と辺が平行

線分と辺が平行な場合、交点は1つに決まりません。ツールにはそれが必要ありません。ほかのすべての交点で切り、そのあと各部分の中点をポイント・イン・ポリゴンのルールで判定します。境界にぴったり沿う部分は中点が境界上にあるので、残ります。

4. 計算例

(−5, 5) から (15, 5) への道路と、両方向に 0 から 10 の正方形のクリップ用ポリゴンを考えます。4 から 6 の正方形の穴(湖)があります。道路は t = 0.25、0.45、0.55、0.75 の4か所で辺と交わります。

道路:  p = (−5, 5)   q = (15, 5)   r = (20, 0)

部分 (t)       中点 x     判定          残す
0.00 – 0.25    −2.5       外側          いいえ
0.25 – 0.45     2.0       内側          はい → (0, 5) – (4, 5)
0.45 – 0.55     5.0       穴の中        いいえ
0.55 – 0.75     8.0       内側          はい → (6, 5) – (10, 5)
0.75 – 1.00    12.5       外側          いいえ

結果: MultiLineString [ (0,5)–(4,5) , (6,5)–(10,5) ]

道路の長さは20単位です。正方形の両側でそれぞれ5単位、湖の上でさらに2単位を失うので、4単位ずつの2つの部分、合計8単位が残ります。これはツール自身のテストで確認しているケースそのものです。

5. ポリゴンのクリップ:Sutherland-Hodgmanからスイープラインまで

ポリゴンのクリップはコンピューターグラフィックスの古い問題です。1974年にSutherlandとHodgmanが、広く使われた最初の方法を発表しました。凸型の窓に対して、1辺ずつポリゴンを切る方法です。WeilerとAtherton(1977年)は両方の境界をたどることで、凹型の形や穴を扱えるようにしました。その後、Vatti(1992年)やGreiner-Hormann(1998年)が続きました。GISで必要なのは一般的なケースです。どんな形でも、穴があっても、パーツが多くても、辺が接していても扱える必要があります。

このツールはTurf.jsを通してpolyclip-tsを使っています。これはMartínez、Rueda、Feito(2009年)のスイープラインアルゴリズムに基づいています。仮想の縦線が2つのポリゴンの上を左から右へ移動します。止まるのは頂点と交点だけで、止まるたびに、どの辺が結果に含まれるかを決めます。辺の数がn、交点の数がkのとき、計算量はおよそ O((n + k) · log n) です。ライブラリは重要な比較を任意精度の数値(bignumber.js)で行うため、辺が接している場合やほぼ平行な場合のような境界ケースでも、丸め誤差で結果が壊れません。

6. 残った部分を測る

結果パネルの面積と長さは、度ではなく地球表面上の値です。面積にはChamberlainとDuquette(NASA JPL、2007年)の球面上のリング面積の公式を使っており、Turf.jsも同じ公式を使っています。長さにはハバーサイン(haversine)の公式を使います。どちらも地球の平均半径 R = 6,371,008.8 m を使います。

リングの面積(λ = 経度、φ = 緯度、ラジアン):
A = (R² / 2) · | Σ (λ(i+1) − λ(i−1)) · sin φi |

線分の長さ(ハバーサイン):
h = sin²(Δφ / 2) + cos φ1 · cos φ2 · sin²(Δλ / 2)
d = 2R · asin(√h)

R = 6 371 008.8 m

球は地球のよい近似です。面積と長さの誤差は、通常1パーセント未満です。結果の確認や報告書には十分ですが、測量レベルの数値が必要な場合は、その地域の投影座標系で計算し直してください。

7. まっすぐな辺と曲がった辺についての注意

切り抜きそのものは、Turf.js、EPSG:4326のGeoPandas、多くのWebツールと同じく、経度・緯度の平面上で行います。各辺は度単位での直線です。市や県、プロジェクト程度の大きさのデータなら、本当の大円の辺との差はデータ自体の精度よりずっと小さくなります。数百キロメートルもある辺では、度単位の直線と大円の線がはっきり離れることがあります。その場合は、クリップの前に長い辺に頂点を追加するか、投影座標系でデスクトップGISを使ってください。

GISで最適なクリップツールは?このツール、ArcGIS Pro、QGISを比較

GISで一番よいクリップツールはどれかとよく聞かれます。正直な答えは「作業によって違う」です。並べて比べてみましょう。

項目このツールArcGIS ProQGIS
価格無料、アカウント不要有料のArcGISライセンス無料のオープンソース
インストール不要、ブラウザで動作Windows用デスクトップアプリWindows、macOS、Linux用デスクトップアプリ
入力形式GeoJSON、Shapefile ZIP、KML、KMZ、GPX、WKTジオデータベース、シェープファイルなど多数GDAL/OGRが読めるものすべて
ポイント・ライン・ポリゴンのクリップ可能、1レイヤー内の混在も可可能可能
出力の属性入力の属性とオプションのクリップ用フィールド入力の属性入力の属性
座標系WGS84(Shapefileの.prjは読み込み時に変換)すべて、XY許容値と環境設定ありすべて、オンザフライ再投影あり
自動化なし、1回ずつ実行arcpyとModelBuilderPyQGISとグラフィカルモデラー
非常に大きなデータ1ファイル50 MBまで対応、Pairwise Clipあり対応
データの保存場所ブラウザ内自分のパソコン自分のパソコン

おすすめ:すでにArcGIS Proを持っていて、データがジオデータベースにあるなら、そこでClipかPairwise Clipを使ってください。結果がプロジェクトの他の部分とうまくつながり、arcpyで作業を繰り返せます。無料で本格的なデスクトップGISが欲しいなら、QGISには優れたクリップツールがあり、ほぼすべての形式を読めます。

このツールが一番役に立つのは、ファイルから結果までの速さを何より重視するときです。同僚からKMLやZIP形式のShapefileが届き、敷地の境界の内側だけが欲しく、何もインストールしたり開いたりしたくない、という場面です。ソフトをインストールできないパソコンでも便利ですし、地図上で各ステップが見えるので、クリップの働きを学ぶのにも分かりやすい方法です。

広告
広告

実際の活用例10選

クリップは、地図を扱うほぼすべての分野で使われています。よく見かける作業を紹介します。

  1. 市の境界内の道路. 交通計画の担当者は全国の道路網を持っていても、必要なのは1つの市の道路だけです。道路網を市の境界でクリップすれば、市内の道路の正確な延長がわかり、そのまま報告書や交通モデルに使えます。
  2. 環境影響評価. コンサルタントは、生息地の地図、保護区、湿地を、事業の区域やそのバッファでクリップします。結果から、事業がどの生息地にかかり、それぞれ何ヘクタールが影響を受けるかがわかります。
  3. 農場と圃場の計画. 農家や農業技術者は、地域の土壌図を圃場の境界でクリップします。圃場ごとに元の土壌属性を持つ土壌ポリゴンができ、可変施肥や可変播種の計画の土台になります。
  4. サービス区域ごとのインフラ網. 水道、電力、通信の会社は、管路、ケーブル、光ファイバーを保守地区やサービス区域でクリップします。各チームは自分の担当部分だけを受け取り、クリップした延長は計画や予算の役に立ちます。
  5. 開発区域の区画と用途地域. 都市計画の担当者や不動産アナリストは、地籍と用途地域のレイヤーを開発予定区域でクリップします。所有者、土地利用、用途地域コードなどの属性は、クリップされた各区画に残ります。
  6. 浸水想定区域での防災計画. 防災担当者は、建物、学校、病院、道路を浸水想定区域や避難区域でクリップします。出力は属性付きのリスク対象の一覧になり、そのまま対応計画に使えます。
  7. 公園内のGPSトラック. レンジャーやハイカーは、GPXトラックを国立公園や自然保護区の境界でクリップします。ルートのうち何キロメートルが本当に公園内を通るかがわかり、各点の標高も残ります。
  8. 林業と伐採区. 林業技術者は、林分ポリゴンを伐採区や管理単位でクリップします。クリップした林分は樹種、林齢、材積を保ち、クリップした面積はそのまま伐採量の計算に使えます。
  9. Web地図用にファイルを軽くする. Web開発者は、全国規模の大きなGeoJSONやShapefileから始めることがよくあります。地図に表示する地域でクリップすると、ファイルサイズを大きく減らせ、Web地図の読み込みがずっと速くなります。
  10. 研究と教育. 研究者は、統計解析の前に、調査地点、サンプル地点、移動軌跡を調査範囲でクリップします。教員は、ソフトをインストールしなくてもクリップの働きが目で見えるので、GISの授業でこのツールを使います。

よくある質問

GISでのクリップについてよく聞かれる20の質問に、端的に答えます。

1. GISのクリップツールは何をするのですか?

クリップは、入力レイヤーをクリップレイヤーの形に切り抜きます。入力フィーチャーのうちクリップ用ポリゴンの内側にある部分だけを残し、入力フィーチャーの属性も残します。クッキーの型を思い浮かべてください。クリップ用ポリゴンが型で、入力レイヤーが生地です。

2. ポリゴンを別のポリゴンでクリップするにはどうすればよいですか?

両方のレイヤーを読み込み、切り抜きたいポリゴンレイヤーを入力レイヤーに、境界のポリゴンをクリップレイヤーに選んで、Clip Layerをクリックします。ArcGIS ProではAnalysis > Extract > Clip、QGISではベクタ > 空間演算ツール > 切り抜くを使います。どの場合も、入力ポリゴンはクリップ用ポリゴンの縁に沿って切られ、内側だけが残ります。

3. クリップとインターセクトの違いは何ですか?

どちらも重なる範囲については同じジオメトリを返します。違いは属性です。クリップは入力レイヤーの属性だけを残します。インターセクトは両方のレイヤーの属性を合わせるので、出力フィーチャーには両方のフィールドが入ります。境界が切るためだけのものならクリップ、各部分がどのゾーンに入ったかも知りたいならインターセクトを使います。

4. クリップとイレース(Erase)の違いは何ですか?

正反対の処理です。クリップはクリップ用ポリゴンの内側を残し、イレース(QGISでは「差分」)は外側を残します。同じデータに両方を実行すると、2つの出力を合わせれば元の入力に戻ります。

5. ラインやポイントもクリップできますか?ポリゴンだけですか?

3種類すべてクリップできます。クリップ用ポリゴンの内側のポイントは残り、ラインは境界で切られて内側の部分だけが残り、ポリゴンは共通部分の形に切られます。1つの入力レイヤーにポイント、ライン、ポリゴンが混在していても、同じ実行でそれぞれ適切な方法で処理されます。

6. クリップしたレイヤーにはどの属性が残りますか?

入力フィーチャーの属性はすべて、クリップ後のフィーチャーにそのままコピーされます。クリップレイヤーの属性は追加されません。オプションで clip_status(inside または clipped)と、残った面積(平方メートル)、長さ(メートル)、ポイント数を追加できます。

7. クリップレイヤーに複数のポリゴンや穴のあるポリゴンを使えますか?

使えます。クリップレイヤーのポリゴンはすべて先に1つのマスクに結合されるので、重なったクリップ用ポリゴンから重複した出力ができることはありません。穴も正しく扱われ、調査範囲からくり抜かれた湖のように、穴の中にあるものは結果から取り除かれます。

8. どのファイル形式をアップロードできますか?

GeoJSON(.geojsonまたは.json)、ZIP形式のEsri Shapefile(.shp、.shx、.dbfを含む.zip。投影座標のデータなら.prjも)、KML、KMZ、GPX、WKT(.wktまたは.txt)です。複数のファイルを一度にアップロードでき、形式を混ぜても構いません。

9. どの形式でダウンロードできますか?

GeoJSON、KML、CSVです。CSVは1列目にWKT形式のジオメトリ、属性ごとに1列が入ります。ArcGIS ProやQGISで結果を開くなら、属性の型が保たれるGeoJSONが一番です。

10. データはサーバーにアップロードされますか?

いいえ。ファイルの読み込み、クリップ、出力の書き出しはすべてブラウザ内で行われます。ファイルがパソコンの外に出ることはありません。インターネットから読み込むのはオプションのベースマップのタイルだけで、それもベースマップをオンにしたときだけです。

11. ツールはどの座標系を使いますか?投影座標のデータもクリップできますか?

ツールはWGS84の経度・緯度(EPSG:4326)で動作します。UTMや平面直角座標系などの投影座標系のZIP形式Shapefileは、ZIPの中に.prjファイルがあれば、読み込み時にWGS84へ変換されます。GeoJSONは、GeoJSONの規格どおり、最初からWGS84である必要があります。

12. 出力に一部のフィーチャーがないのはなぜですか?

クリップ用ポリゴンの完全に外側にあるフィーチャーは削除されます。それがクリップの目的です。結果ボックスに捨てられた数が表示されます。あるはずのフィーチャーがない場合は、両方のレイヤーが地図上の正しい位置にあるか確認してください。.prjファイルのないShapefileは、間違った場所に表示されることがよくあります。

13. クリップ境界のちょうど上にあるフィーチャーはどうなりますか?

境界のちょうど上にあるポイントは残り、境界に沿って走るラインの部分も残ります。外側から境界に接しているだけのポリゴンは、クリップ用ポリゴンと共通の面積がないので削除されます。ArcGISとQGISも同じルールです。

14. どのくらいの大きさのファイルをクリップできますか?

1ファイル50 MBまでです。普通のノートパソコンなら、数万件のフィーチャーを通常1秒ほどでクリップできます。国全体の建物のような非常に大きなデータには、Pairwise Clipを備えたArcGIS ProやQGISなどのデスクトップGISが向いています。

15. 四角形やバウンディングボックスでクリップするにはどうすればよいですか?

ツールバーのClip Rectangleをクリックし、地図上で対角の2点をクリックします。四角形が新しいレイヤーとして追加され、すぐにクリップレイヤーとして選ばれます。正確な座標が必要なら、このサイトのバウンディングボックスツールで作ったポリゴンをアップロードすることもできます。

16. ラインやポリゴンがMultiジオメトリになったのはなぜですか?

クリップ境界によって1つのフィーチャーが複数の部分に切られると、属性が重複しないように、それらは1つのマルチパートフィーチャー(MultiLineStringまたはMultiPolygon)としてまとめられます。ArcGIS Proも同じです。部分ごとに1つのフィーチャーにしたい場合は、「Split multipart results into single parts」にチェックを入れてください。

17. ArcGIS Proでクリップするにはどうすればよいですか?

ジオプロセシングウィンドウを開き、Clipを検索してClip(Analysis Tools)を開きます。Input FeaturesとClip Featuresを指定し、出力を選んで実行をクリックします。大きなデータには、Pairwise OverlayツールセットのPairwise Clipが同じ処理を並列処理でより速く行います。

18. QGISでクリップするにはどうすればよいですか?

ベクタ > 空間演算ツール > 切り抜くを開き、入力レイヤーとオーバーレイレイヤーを選んで実行をクリックします。Pythonコンソールでは、同じ処理を processing.run("native:clip", ...) と書き、INPUT、OVERLAY、OUTPUTのパラメーターを指定します。四角形で切り抜くなら、プロセシングツールボックスのExtract/Clip by Extentを使います。

19. Pythonスクリプトでarcpyを使ってクリップするにはどうすればよいですか?

ArcGIS Proでは arcpy.analysis.Clip("roads", "study_area", "roads_clip") を呼び出します。古いArcMapの書き方 arcpy.Clip_analysis(...) も同じパラメーターを取ります。簡単なforループで多数のレイヤーや多数の境界を順に処理でき、arcpyが一番時間を節約してくれるのはこの場面です。

20. 結果の面積や長さは正確ですか?

半径6,371,008.8 mの球面上で計算するので、度ではなく実際の平方メートルとメートルです。本当の楕円体との誤差は通常1パーセント未満です。計画や報告書には十分です。法的な用途や測量レベルの値が必要な場合は、その地域の投影座標系で測り直してください。

使用ライブラリとクレジット

このツールはオープンソースソフトウェアの上に作られています。これらのプロジェクトを書き、保守している皆さんに感謝します。

  • Leaflet 1.9 · BSD-2-Clause · Volodymyr Agafonkin and contributors
    インタラクティブな地図、レイヤー、描画ツール、ポップアップを描画します。
  • ポリゴンを切り抜くための交差、クリップレイヤーをディゾルブするためのユニオン、測地的な面積、ポイント・イン・ポリゴン判定を担当します。
  • polyclip-ts · MIT · Luiz Felipe Machado Barboza, based on polygon-clipping by Mike Fogel
    Turfのintersectとunionの裏で動くポリゴンのブール演算エンジンです。任意精度の計算でMartinez-Ruedaのスイープラインアルゴリズムを使います。
  • point-in-polygon-hao · MIT · Rowan Winsemius
    どのポイントやラインの部分がクリップ範囲の内側にあるかを決める、高速なポイント・イン・ポリゴン判定です。
  • shpjs · MIT · Calvin Metcalf
    ZIP形式のEsri Shapefile(.shp、.shx、.dbf、.prj、.cpg)をブラウザで読み込みます。
  • proj4js · MIT · proj4js contributors
    投影座標のShapefileを、.prjファイルを使ってWGS84に変換します(shpjsが使用)。
  • @tmcw/togeojson · BSD-2-Clause · Tom MacWright
    KMLとGPXのファイルをGeoJSONに変換します。
  • JSZip · MIT or GPL-3.0 · Stuart Knightley
    KMZアーカイブを開いて、中のKMLファイルを読み込みます。
  • @terraformer/wkt · MIT · Terraformer contributors
    WKTの入力を読み込み、CSV出力のWKTジオメトリ列を書き出します。
  • OpenStreetMap, Protomaps (hosted by KONAKTIVE), CARTO, Esri World Imagery · ODbL / provider terms · OpenStreetMap contributors, Protomaps, KONAKTIVE, CARTO, Esri
    ベースマップのタイルと衛星画像です。ベースマップをオンにしたときだけ表示されます。

ラインをクリップする処理(境界との交点で線分を分割し、各部分を判定する処理)は、このツールのために書きました。クリップエンジンは自動テストで確認しています。テストは、穴を通るライン、境界に沿うライン、境界上のポイント、穴の上のポリゴン、重なったクリップ用ポリゴン、Z値の補間をカバーしています。

関連するジオプロセシングツール

クリップ処理はすべてブラウザ内で行われます。ファイルがサーバーにアップロードされることはありません。 Map tiles © OpenStreetMap contributors, Protomaps (hosted by KONAKTIVE), CARTO, Esri.

Muhammad Gulraiz Khan、GIS専門家、KONAKTIVEおよびOnlineMapMaker.comの創業者

著者について

Muhammad Gulraiz Khan

GIS専門家・コンサルタント、KONAKTIVE創業者

Muhammad Gulraiz Khanは、エネルギー分野向けに地理空間ソリューションを提供してきた10年以上のプロフェッショナル経験を持つGIS専門家です。世界銀行、国際金融公社(IFC)、USAIDのプロジェクトにも携わってきました。彼はプロフェッショナル品質の地図作成ツールを誰もが無料で利用できるようにするため、OnlineMapMaker.comを立ち上げました。

広告
広告