Labo288

プログラミングのこと、GISのこと、パソコンのこと、趣味のこと

シェープファイルの.dbfファイルと.csvファイルを相互変換する


はじめに

一般にシェープファイルとはいわゆるベクター図形データと理解されていると思いますが、図形にはプロパティと呼ばれるデータが格納されています。 たとえば、都道府県のシェープファイルがあったとすれば、県庁所在地や、人口や、面積など、図形自体を描写するデータを入れる事が多いです。 GIS(地理情報システム)ではこの機能を活かして、たとえば人口が多いほど赤色で、少ないほど青色で表示…というように使われています。

シェープファイルと.dbfファイルについて

昨今では、.geojsonファイルなど、より便利そうな形式がメジャーになってきているようですが、シェープファイルというレガシーな形式が未だにGIS界隈では根強く使用されているようです(自分の身の回りと調べた感想です)。 仕事柄GISを使う事が多く、そんな中たびたび発生していた問題が、エクセルで.dbfファイルの編集ができない!という事。広義のシェープファイルを、.shpファイル、.shxファイル、そして.dbfファイルの3点セットであるとします。 最初に述べた図形のプロパティは、このうち.dbfファイルに格納されています。dBaseファイルなんて呼び方をするようですが、出所はよくわかりません。

.dbfファイルの編集について

GISに関係する業務を行っていると、既存のデータベース(エクセルデータ)を、既存のシェープファイル形式の図形データのプロパティに放り込みたいという場面がよくあります(例:都道府県のシェープファイルに都道府県別平均寿命データを入れたり等)。先程述べたとおり、.dbfファイルに図形のプロパティが格納されているため、フィールド(列)の追加や値の編集のためには、.dbfファイルの編集が必要なわけです。確か、OpenOffice等オフィス互換ソフトなら.dbfファイルの編集に対応していた記憶がありますが、実際の現場ではMicrosoft Office上でシームレスに処理を行いたいニーズがあります。本記事では、それを解決するために書いたスクリプトを紹介します。

DBF to CSV to DBF Converterについて

github.com こちらにスクリプトがありますので、必要な方はダウンロードしてご利用ください。なお事前に、Python3とライブラリのdbfpyをインストールしておいてください。 使い方は、スクリプトに.dbfファイルもしくは.csvファイルをドラッグドロップするだけです。.dbfファイルであれば.csvファイルを、.csvファイルであれば.dbfファイルを同一のディレクトリに書き出します。

注意事項

本スクリプトの使用により発生するいかなる損害・損失に関して、責任を負うことは出来ません。自己責任で、変換前にはデータをバックアップのうえご使用ください。 不具合等があれば報告頂ければ修正したいと考えていますので、お知らせください。

終わりに

最近ではビッグデータ活用という言葉が出てきていて、RESASdeck.glなど、データの可視化による分析に有用なツールが多数生まれています。GIS関連の情報には気を配っていきたいなと思います。