見出し画像

公図ビューアのGeoJSONファイルのためのDXF変換プログラム ソースコード

更新情報(2025-01-23)
ソースコードをVersion 2.0.0 にアップグレードしました。おもな更新内容は以下の通りです。
⏺ 単位をメートルからミリに変換できる機能を追加(Jw_cad使用時に便利!)
⏺ ラベルを計算で中央揃えするように改良
⏺ ezdxfのバージョンを 1.3.3 から 1.3.5 にアップデート


本記事では、弊社運営の公図ビューアで保存したGeoJSONファイルをDXF形式に変換するプログラム(DXF変換プログラム)のソースコードをご紹介します。

ソースコードは、Pythonで作成されており、ファイル(ipynb形式)を記事の後半でダウンロードできます。

Google Colaboratory(Colab)で作成し保存した ipynb 形式のファイルなので、Google Colabで読み込んですぐに実行できます。

Google Colab で実行することを前提とした作りになっていますが、変換処理のソース部分だけを取り出して自分のプログラムに組み込むことも可能です。

DXFへの変換処理には「ezdxf」というオープンソースで公開されているDXFを読み書きできるPythonのライブラリを利用しています。

ezdxfを利用してプログラミングすることで、DXFのバージョンやエンコーディングを自分で設定できるので、CADの違いに柔軟に対応しやすくなります。

以下の弊社の記事では、実際に作成したDXFファイルが問題なくCADで読み込めるかを検証しています。

上の記事で実際に変換したDXFファイルをダウンロードできますので、本記事をご購入前にご使用のCADで読み込めるか確認することをおすすめします。


ソースコードをGoogle Colabで実行する方法

Google Colab はパソコンにPythonがインストールされていなくてもブラウザ上でPythonのコードを実行できます。

前述の通り本記事のソースコードは Google Colab で読み込んで実行できるようになっているので、Pythonがご自身のパソコンになくてもブラウザ上ですぐに実行できます。以下でその方法を説明します。

(1) 必要なもの

  • GeoJSONファイル:公図ビューアで保存

  • ソースコード「kouzu_geojson_to_dxf.ipeynb」:記事の後半でダウンロード

  • Google アカウント

GeoJSONファイルは、公図ビューアで登記所備付地図データを表示している状態で以下の[GeoJSON形式で保存]ボタンをクリックするとすぐに保存できます。詳しくはこちらをご覧ください。

以下にGeoJSONファイルのサンプルを用意しましたので、すぐに本記事の操作を試してみたい場合はご利用ください。


(2) ソースコードをGoogle Colabに読み込ませる

最初に以下のリンクをクリックして、Google Colabのホームページをブラウザで開きます。

Google Colab には有償のオプションもありますが、今回のプログラムは無料版のままで十分実行できます。

以下の右上の[ログイン]ボタンをクリックしてGoogleアカウントでログインします。すでにログインしている場合はそのまま次に進んでください。

すると以下のような画面が表示されるので、左側の項目から[アップロード]を選択してソースコードのファイル「kouzu_geojson_to_dxf.ipeynb」をドラッグして Google Colab にアップロードします。

※ この画面は[ファイル]ー[ノートブックをアップロード]を選択しても表示できます

すぐにソースコードが読み込まれて以下のような画面が表示されます。リリースノートなどの通知が表示される場合は閉じておいてください。


(3) ソースコードを上から順に実行する

ソースコードを読み込んだら、あとは以下の ❶-1, ❶-2, ❷,  ❸ の再生ボタンを上から順にクリックして実行してゆきます。

再生ボタンをクリックしてゆくと、1.プログラムの準備、2.GeoJSONファイルのアップロード、3.変換実行 を順に行います。それぞれの実行方法を以下で詳しく説明します。


1.プログラムの準備

❶-1 の再生ボタンを押すと変換処理に必要なライブラリ(ezdxf)のインストール、❷-2 を押すと今回のプログラムのソースコードを読み込みます。

最初にGoogleのサーバの準備も行うので少し待ちます(状況により異なりますが10~20秒程度)。再生ボタンの周りの回転アニメーションが消えたら完了です。

もしも2つのボタンが表示されていない場合は、以下のようにセクションを展開してみてください。Google Colab ではこのようにセクションの中身を折りたたんだり、展開できるようになっています。


2.GeoJSONファイルのアップロード

❷ の再生ボタンをクリックすると以下のように[ファイル選択]ボタンが表示されるので、変換するGeoJSONファイルを選択してアップロードします。

アップロードが終了するまで少し待ちます。終了すると以下のように「100% done」と表示され、再生ボタンの周りの回転アニメーションが消えます。

GeoJSONファイルは一度に複数選択できるようにしてありますが、1〜数個程度にしておくのが適当です。大量のデータをアップロードしてしまうと変換やダウンロードの時間が長くなるばかりでなく、Google Colab の制限に該当してしまう可能性もあります。


3.変換実行

つぎに ❸ の再生ボタンをクリックする前に、どのようなDXFに変換するのか設定します。設定はコードを直接編集しなくても、以下のように画面で行えます。この画面はGoogle Colab の機能を利用しており、画面で設定して内容が自動的にコードに反映される仕組みになっています。

設定項目は以下の通りです。

  • DXFのバージョン」はドロップダウンリストから選択できます。

  • DXFをShift_JISで保存するか」はチェックボックスで切り替えます。通常は、Jw_cadの場合はオン、その他のCADの場合はオフにします(R2007以降エンコードはUTF-8に定められているので、CADによっては読み込めなくなる場合があります)。

  • ラベル(地番)を出力するか」はチェックボックスで切り替えます。

  • ラベルのサイズ」は数値を入力します。1=小、3=中、5=大 が目安になりますが、2.3 や 4.5 のように任意の数字を入力できますので、ラベルの地番が見やすいように図面に応じて適宜調節してください。

  • ラベルをMSゴシックにするか」はチェックボックスで切り替えます。

  • ミリ単位(座標値を1000倍)にするか」はチェックボックスで切り替えます。登記所備付地図データの単位はメートルなので、ここをオンにすると座標の値をすべて1000倍にして単位をミリに変換します。Jw_cadは規定の単位がミリなので、Jw_cadで読み込む時に便利です。

設定したら ❸ の再生ボタンをクリックして変換を実行します。変換が完了すると自動的にDXFファイルがダウンロードされます。

これでGeoJSONファイルをDXFに変換できました。あとは以下のようにCADで読み込んで利用できます。

Jw_cadで読み込んだ例

他のGeoJSONファイルを変換したい場合は、「2. GeoJSONファイルのアップロード」で新しいファイルをアップロードして変換を実行します。「1. プログラムの準備」はGoogle Colabの1回の起動につき1度実行すれば大丈夫です。


次回からはGoogle ドライブから読み込めます

アップロードしたソースコードは以下のようにGoogle ドライブ に自動的に保存されます。次回からはこのファイルをダブルクリックするだけでGoogle Colabでソースコードを読み込みできます。


※  対象読者
本記事は、実務で土地の図面をCADで扱っている方を対象としています。また、対象読者には以下のような知識があることを前提に執筆しています。
 ・ CADやDXF形式に関する基礎知識
 ・ Pythonを用いたプログラミングに関する基礎知識
 ・ Google Colab と Google ドライブの基本的な使い方

※ ソースコードの利用条件
ソースコードは、そのまま利用していただくだけでなく、自由に改変したり、ご自身のプログラムに組み込んでご利用できます。ただし、改変の有無に関わらず、ソースコードをウェブサイト等に転載したり、配布や転売はしないでください。

※ ソースコードのご利用にあたって
ソースコードのご利用にあたっては、弊社データサービス利用規約が適用されます。ご購入いただく前に、よく内容をご確認いただきご同意くださいますようお願いいたします。

※ ezdxfのライセンスについて
ezdxf(今回はver.1.3.5を使用)は、インストールパッケージを提供しているPyPIのプロジェクトに記載されている通り「MITライセンス」で公開されています。ezdxfは、このライセンスの条件(著作権表示、当該許諾表示)に従うことで無料で利用できます。弊社では当該ライセンスの適用方法についてのサポートは実施しておりませんが、MITライセンスは主要なオープンソースライセンスの1つであり、インターネットで適用事例などを調べることができます。ご利用方法等を考慮しながら、当該ライセンスを遵守してご利用ください。

※ ソースコードやPythonに関するご質問について
本記事のおもな目的はソースコードの提供であり、ソースコードの詳細な解説や改変方法、Python・ライブラリ・Google Colab等の使い方についてはサポートしておりません。そのため、恐れ入りますがこれらに関するご質問は承っておりません。ソースコードについてはコード内のコメント、ライブラリとGoogle Colabについては、記事の後半に掲載しているドキュメントや参考サイトのリンク先をご参照ください。

※ ご購入にあたって
コンテンツの性質上、ご購入後の返品及び返金は承っておりません。ご購入にあたっては、事前によく内容をご確認いただきますようお願いいたします。



ソースコードのダウンロード

ここから先は

2,166字 / 2画像 / 1ファイル

¥ 3,500

期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる