QGISで衛星画像から敷地計画図を作る


衛星画像を敷地計画図に変えるには、3つ必要です。georeferenced imagery、見えているものを平面的な形にトレースする方法、そして正しい縮尺でresultを戻す方法です。
では、1つ目と3つ目はsoftwareに備わっていて、午後を消費するのはトレースです。
この投稿では、まず手作業の方法を説明し、次に同じblockを画像を描き直すmodelで29秒で処理し、modelが間違えた点を説明します。ここにある画像はすべて、そのQGISセッションのscreenshotです。
対象は、ロンドンから北へ約55 km、最初のgarden cityであるLetchworth Garden CityのBroadway Gardensです。586 × 439 mのblockで、fountainのある整形式のpark、旧town hall、library、car park付きのoffice block、そして2本の住宅街があります。手を抜いた方法の弱点を露呈させるには十分な多様性です。
敷地計画図とは何か。なぜ衛星画像から始めるのか?
敷地計画図とは、敷地とその周辺を上から見た縮尺付きの図面です。存在する建物、そこへ続く道路とpath、その間にある木々とlawns、そして計画図なら、そこに建てたいものを示します。planning departmentは、ほぼすべての申請でこれを求めます。architectは、designに触れる前に敷地を理解するため、ほぼすべてのprojectの最初にこれを描きます。
衛星画像や航空画像が正直なbaseになるのは、そこにすでにすべての答えが含まれているからです。建物のfootprintがどこにあるか、道路の幅がどれくらいか、どの木が大木かが分かります。問題は、それらがpixelとして含まれていることです。敷地計画図にはshapeとして必要です。以下で扱うのは、すべてこの変換です。
Webでよくある間違い
この質問をすると、いつも3つの答えが出てきます。そしてどれも、1時間か、使い物にならない図面のどちらかを代償にします。
「Google Earthをscreenshotして、その上からトレースすればいい。」 screenshotにはcoordinateがないため、線を描く前にGeoreferencerで20分使うことになります。QGISに読み込んだimageryはすでにgeoreferencedです。描画toolではなく、ここから始める理由はそこにあります。
「AIの敷地計画図ならsurveyに十分な精度がある。」 計画図の精度は、その下にあるimageryと同じ精度です。そしてGoogle Satelliteはsurveyではありません。feasibility study、pre-application drawing、client meetingには適していますが、境界線には不適切です。
「modelがeditableなshapeを返してくれる。」 返ってくるのはimageです。flat colourで、正しくgeoreferencedされていますが、別のvectorizing stepを実行するまではpolygonは1つもありません。
必要なもの
- plot scaleで読み取れるimagery。 Google SatelliteはQGISに最も簡単に読み込め、世界の大部分を15〜30 cmでカバーします。利用できる場所ではnational orthophotoの方が優れています。米国のNAIP、フランスのIGN BD ORTHO、欧州の多くのcadastral agencyはWMSを公開しています。GeoTIFF、WMS、XYZ basemapのどれでも動作します。
- QGIS。Windows、macOS、Linuxで使用できます。Version 3.34以降。
- QuickMapServices plugin。Google Satelliteをワンクリックで読み込むために使います。Plugins、Manage and Install Plugins、「QuickMapServices」で検索します。
Photoshop、Illustrator、その他のGISは必要ありません。この投稿はCAD drawingではなく、imageだけを出発点にします。
手作業の方法:自分でトレースする
まずこの方法を詳しく説明します。pluginが不要であること、そして後でAIのresultを評価するために、この方法を知っておくことが重要だからです。
imageryを読み込み、敷地を表示する
Web、QuickMapServices、Google、Google Satellite。plotまでzoomします。この大きさのblockなら、私はおよそ1:2,000で表示します。1軒の住宅plotなら1:500です。imageryはすでにgeoreferencedなので、画面下部のscale barは、あなたが何もしなくても正しい値を示します。

class field付きのpolygon layerを1つ作成する
Layer、Create Layer、New GeoPackage Layer。Geometry typeはPolygon、CRSはprojectと同じものにし、text field class_nameを追加します。class field付きのlayerを1つ使う方が4つのlayerを使うより優れています。1か所でstyleを設定でき、1つのfileにexportできるからです。
building、道路、vegetationの順にトレースする
Toggle editing、Add Polygon Featureの順に選択し、それぞれのfootprintの周囲をクリックします。角ではmouseを安定させ、出窓のすべてを追いかけないでください。敷地計画図は1:50ではなく1:500で読みます。次に道路を、carriagewayごとに1本の長いpolygonとして描きます。vegetationは最後に、ゆるいblobとして描きます。lawnの端を確認する人はいないからです。
このblockを手作業でトレースする時間は計測していないので、数字は示しません。ただ、数百のbuildingがあり、それぞれに複数回のclickが必要だということは言えます。
flat fillでclassをstyle設定する
Layer Properties、Symbologyで、class_nameをCategorizedにします。buildingは細い黒のoutline付きのwhite、道路はmid grey、vegetationはpale green、waterはpale blueにします。この4つのfillが敷地計画図のvisual languageのすべてです。これ以上増やしたい誘惑には抵抗してください。
縮尺でexportする
Project、New Print Layout。mapを追加し、scaleを1:500または1:1,000に設定し、scale barとnorth arrowを追加してPDFとしてexportします。そのPDFをplanning portalが受け付けます。
この方法なら、正しい敷地計画図と、自分が所有するfileが得られます。作業はトレースだけで、buildingの数に比例して増えます。
速い方法:modelに画像を描き直させる
generative modelは、imageryをその場でrestyleできます。同じextent、同じshapeのまま、写真のtextureをflat fillに置き換えます。私たちはこのためのtool、AI Editを作っています。このsectionでは、私たちのtoolを扱います。
imageryのzone、望む変更を説明するsentenceを受け取り、元画像とpixel単位で揃った、新しいgeoreferenced raster layerとしてresultを返します。敷地計画図の場合、「変更」とはstyleです。すべてのshapeを元の位置に残し、写真のtextureをflat fillに置き換えます。
pluginをインストールしてsign inする
Plugins、Manage and Install Plugins、「AI Edit」で検索してInstallします。panelを開き、Sign inをクリックします。browserが開くので、accountを作成するとpluginが接続します。始める前にpanelの全体像を確認したい場合は、complete guideに掲載しています。
zoneを描く
Launch AI Editをクリックし、map上で対象範囲の角をクリックして、Returnを押して閉じます。私はblock全体、586 × 439 mを囲みました。これは大きめです。panelは、およそ1平方kilometreを超えるとAIが大まかなshapeだけを維持すると警告しますが、その通りです。

希望ではなく仕様としてpromptを書く
私が使ったpromptは、1語も変えずにこれです。
Transform this orthophoto into a clean architectural site plan. Top-down view, flat fills, no photographic texture and no shadows. Exactly four classes and nothing else: buildings as white footprints with a thin black outline, roads and parking as mid grey, vegetation as pale sage green, water as pale blue. Keep every footprint, kerb line and road centreline in its exact position and shape. Same geographic extent as the input.
うまくいく理由は3つあります。classとcolourを指定しているため、modelがpaletteを勝手に作りません。「exact position and shape」と書いているため、敷地計画図ときれいな画像の違いが生まれます。そして、してはいけないことも指定しています。shadowなし、textureなしです。同じpromptはpanelのLibraryにあるClean architectural site planからも使えるので、入力したくなければ選択してください。

Generateする
Generateをクリックします。このblockでは、output detailを3つの設定の中間であるDetailedにしたところ、resultは29秒で戻ってきました。新しいlayerは2,392 × 1,792 pixelのGeoTIFFで、1 pixelあたり約25 cmです。Documents folderに保存され、imageryの上にprojectへ追加されます。

この投稿の上部にあるsliderで、もう一度計画図を見てください。すべてのfootprintがあるべき場所にあります。park沿いのtree avenueは、樹冠の列として読み取れます。car parkにはbay lineがあります。fountain basinはblueのoctagonで、これは正しい結果です。
手作業で修正した点と、信頼すべきでない点
同じrunから得られた、このblockでAIが間違えた点を示します。都合のよい例だけを選んではいません。
- 八角形のbuildingがpondになった。 fountainの南西にある銅屋根の円形buildingはgreen roofですが、計画図ではpale blueのwaterとして描かれました。数百あるfootprintの中で唯一の本当のerrorです。まず画像を見ていたからこそ気づけた種類のerrorでもあります。
- Parking bayのstripeが残った。 2つのcar parkに描かれたbay lineはlight greyで表示されます。bayを示したいならそのまま使い、plain grey parkingが必要ならpromptで指定してください。
- ほとんどのtree crownがlawnのcolourに混ざった。 計画図で個々のtreeの位置が重要なら、treeだけを対象にしたpromptで2回目のeditを実行するか、個々のobjectのcounting向けに作られたAI Segmentationでprompt「tree」を使ってください。
boundary surveyや、30 cmのerrorが問題になる用途には、この方法を使いません。計画図の精度はimageryと同じ精度であり、Google Satelliteはsurveyではないからです。feasibility study、pre-application drawing、landscape concept、または明日の朝client meetingがある場合には、まさに私が使う方法です。
覚えておくこと
buildingが20棟程度までなら、手作業でトレースしてください。良いpromptを書き終える前に作業が終わり、敷地のすべての角を把握できます。それこそが、敷地計画図を描く本当の意味です。
生成routeの価値が出るのは、blockやneighbourhood、複数の敷地で繰り返し作業をするとき、そして図面の提出期限が9時に迫っている日です。
4つのclassとそのcolourを指定し、「exact position and shape」と書くpromptが、敷地計画図ときれいな画像の違いを生みます。
outputはtrue scaleのgeoreferenced imageなので、そこから作ったprint layoutは、imageryの精度内で寸法的に正確です。
このblockでは、1つのgreen roofがpondになりました。計画図を見る前にimageryを確認してください。このようなerrorを見つける唯一の方法だからです。
よくある質問
敷地計画図は正しい縮尺で戻ってきますか? はい。resultはimageryと同じcoordinate systemのGeoTIFFなので、map上にtrue scaleで配置されます。そこから作るprint layoutも、imagery自体の精度内で寸法的に正確です。
自分のdrone画像やsurvey画像を使えますか? はい。pluginはpanelで選択したraster layerなら何でも使えます。drone flightから得たGeoTIFF、national mapping agencyのWMS、basemapのいずれでも構いません。入力が鮮明であるほど、計画図も鮮明になります。
どのQGIS versionに対応していますか? Windows、macOS、LinuxのQGIS 3.34以降とQGIS 4です。
次のステップ
自分の敷地を読み込み、zoneを描き、上のpromptを貼り付けてください。計画図が正しければ、designの土台ができます。間違っていても、30秒で敷地について何かを学べます。手作業の方法もまだ残っています。
最後に1つ。戻ってくる計画図はimageです。presentationやclient deck用の画像が必要なだけなら、それで十分なので、ここで止められます。編集可能なpolygonが必要なら、pluginにはflat colourをvector shapeに変換するtoolがあります。colourごとに1つのclassになります。これは別の投稿で扱うテーマです。
QGIS内でAIにできることとできないことについては、QGIS AI hubで詳しく説明しています。


