SlideShare a Scribd company logo
GeoCSVのススメ
株式会社マップル・オン 柴本歩
FOSS4G 2018 Tokyo ライトニングトーク
GeoCSVとは
➢ 位置情報付きのCSV
➢ 位置情報はWKTで書く
WKTとはPostGISのST_GeomFromText( )
で書くあれ
➢ POINTだけなら
緯度カラムと経度カラムでもよい
WKT,...
POINT (0 0),...
LINESTRING (0 0, 1 1),...
POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0)),...
lon,lat,...
0,0,...
0,1,...
利点
テキストだから
➢ 人間でも読める、書ける
➢ 特定のソフトに依存しない → GeoJSONと共通の利点
利点
CSVだから
➢ 一覧性に優れる
➢ 表計算で扱える
DBにインポートしやすい
➢属性名で容量を食わない
➢行データなので
テキストストリーム系のコマンドと相性がいい
→ GeoJSONにはない利点
JSONだと
{"属性名1":..., "属性名2":..., "属性名3":...}
,{"属性名1":..., "属性名2":..., "属性名3":...}
,{"属性名1":..., "属性名2":..., "属性名3":...}
,{"属性名1":..., "属性名2":..., "属性名3":...}
,{"属性名1":..., "属性名2":..., "属性名3":...}
欠点
CSVだから
➢ データ型があいまい
➢ 座標系があいまい
無指定のときはEPSG:4326と解釈されま
す。
欠点
CSVだから
➢ データ型があいまい
➢ 座標系があいまい
無指定のときはEPSG:4326と解釈されま
す。
を補うため
➢ .csvt ファイル
各カラムのデータ型を記述した1行の
ファイル
➢ .prj ファイル
座標系を定義したファイル
ESRI Shapeの.prjに似ている
欠点
を付属できる。(必須ではない)
➢ それじゃまるでShapeじゃ
ないか
➢ ZIPでまとめた .csvz という
仕様も定義されています
あまり出番ないけど
.csv
.csvt
.prj
.csvz
話は変わって
タブ区切りのススメ
カンマ区切りのジレンマ
➢ WKTでもカンマを使うし
➢ 属性にもカンマはありがち
→ クォーテーションの考慮が面倒!
LINESTRING (0 0, 1 1)
"Hello,World."
タブ区切りのススメ
➢タブで区切ればいいじゃない
表計算に貼り付けやすくなる作用も
➢ ここで注意
タブで区切っても拡張子は .CSV
タブ区切りのススメ
CSVは
➢ Camma Separated Values
ではなく
➢ Character Separated Values
の略である。
タブ区切りだからって
.tsv
にしなくていいんです。
後述するGeoCSV対応ツールは
タブ区切りでも拡張子.csvを
前提として設計されているので、
.tsvにしない方ことをおすすめします。
対応ツール
➢ QGIS
ファイルの読み書きはもちろん、編集中
のベクター地物をCtrl+Cコピーすると、
クリップボード内で保持される形式は
タブ区切りGeoCSVそのもの!
➢ ogr2ogr
が対応している形式なら自在に相互変換
できます。
→ 相性抜群!
→ ケンカ売らないスタイル
対応ツール
ogr2ogrコマンド例
➢ csvt付き
➢ prj付き
➢ タブ区切り
GeoCSVに変換する例
ogr2ogr -lco CREATE_CSVT=YES -a_srs EPSG:4326 -lco SEPARATOR=TAB -lco GEOMETRY=AS_WKT -f csv 出力.csv 入力
対応ツール
ogr2ogrコマンド例
➢ GeoCSVから変換する例
➢ -oo KEEP_GEOM_COLUMNS=NO
WKTが属性として出力されるのを拒否
➢ -oo EMPTY_STRING_AS_NULL=YES
空項目をNULLとして扱う
ogr2ogr -oo KEEP_GEOM_COLUMNS=NO -oo EMPTY_STRING_AS_NULL=YES -f 出力形式 出力先 入力.csv
仕様の一次資料
https://giswiki.hsr.ch/GeoCSV おわり

More Related Content

What's hot

知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips
ikeyat
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
 
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
OSgeo Japan
 
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話Tokoroten Nakayama
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
JavaScript GIS ライブラリ turf.js 入門
JavaScript GIS ライブラリ turf.js 入門JavaScript GIS ライブラリ turf.js 入門
JavaScript GIS ライブラリ turf.js 入門
Takahiro Kamada
 
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法についてオープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
Ryousuke Wayama
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
You&I
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
Takuya Ogawa
 
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
Kazutaka ishizaki
 
オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門
Yoshinori Yamanouchi
 
【FOSS4G 2016 Hokkaido】Cesiumマニアックス
【FOSS4G 2016 Hokkaido】Cesiumマニアックス【FOSS4G 2016 Hokkaido】Cesiumマニアックス
【FOSS4G 2016 Hokkaido】Cesiumマニアックス
中洞 友希
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
Takayuki Shimizukawa
 
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
Itsuki Kuroda
 
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
京大 マイコンクラブ
 
アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例
Yukio Okajima
 
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Kazutaka ishizaki
 

What's hot (20)

知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
大規模タイル画像を生成した話((独)農研機構 寺元郁博様)
 
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
 
JavaScript GIS ライブラリ turf.js 入門
JavaScript GIS ライブラリ turf.js 入門JavaScript GIS ライブラリ turf.js 入門
JavaScript GIS ライブラリ turf.js 入門
 
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法についてオープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
オープンデータとオープンソースGisを用いたweb上でのインタラクティブ可視化手法について
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
 
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
 
オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門
 
【FOSS4G 2016 Hokkaido】Cesiumマニアックス
【FOSS4G 2016 Hokkaido】Cesiumマニアックス【FOSS4G 2016 Hokkaido】Cesiumマニアックス
【FOSS4G 2016 Hokkaido】Cesiumマニアックス
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
 
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
大規模レガシー環境に立ち向かう有機的な開発フォーメーション #devsumi #devsumic
 
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
 
アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例アジャイル開発の普及状況と具体事例
アジャイル開発の普及状況と具体事例
 
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
 

Recently uploaded

NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 

Recently uploaded (6)

NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 

GeoCSVのススメ