このビューアーでできること
TSV(タブ区切り値)は、とてもシンプルなデータ形式の一つです。1行に1件のレコードがあり、列と列の間はタブ文字で区切られます。多くのツールがこの形式を書き出します。データベースはTSVを書き出し、研究機関のポータルはダウンロード用に提供し、ExcelやGoogleスプレッドシートでセルをコピーすると、クリップボードにはTSVが入ります。問題は、テキストエディタで開いたTSVファイルは列がそろわず、読みにくいことです。
このビューアーはファイルを読み込み、いちばん役に立つ形で表示します。まず列名を調べます。Latitude/Longitude、lat/lon、Breitengrad/Längengrad、緯度/経度 のような緯度と経度の列が見つかれば、有効な値を持つ各行が地図上の点になります。度分秒の座標、小数点にカンマを使う数値、"52.52, 13.40" や POINT (13.40 52.52) のような1つの列にまとめた値も読めます。何も見つからなければデータを表で表示しますが、その場合も座標の列を自分で選べます。
誰かから届いたファイルをすばやく確認するために作りました。行がどこにあるかを見て、任意の列で点を色分けし、点をクリックして行の内容を読み、表に切り替えて並べ替えや絞り込みをし、表の行からその点へ移動できます。最後に、地図上の行をGeoJSONとして、または表全体をCSVとしてダウンロードできます。ファイルはブラウザの中にとどまり、アップロードされることはありません。
TSVファイルの中身
このページのサンプルファイルの見出し行と3行を示します。→ はそれぞれ1つのタブ文字を表しており、ほとんどのエディタでは見えません。最後の行は緯度と経度のセルが空なので、ビューアーは座標のない行として数えます。
ID→Name→Category→City→Country→Latitude→Longitude 1→Eiffel Tower→Tower→Paris→France→48.8584→2.2945 5→Colosseum→Monument→Rome→Italy→41.8902→12.4922 29→Plitvice Lakes→Nature park→Plitvička Jezera→Croatia→→
- 区切り文字
- 2つのセルの間に1つのタブ文字(
\t、Unicode U+0009)。タブが2つ続くと空のセルを意味します。 - 行
- 1行に1件のレコード。Windowsの改行(
\r\n)とUnixの改行(\n)のどちらも使えます。空の行は飛ばします。 - 1行目
- 多くの場合は列名です。ビューアーが自動で判断します。1行目が2行目と同じ列に数値を持っていれば、データとして扱います。この選択はFileパネルで変えられます。
- 引用符
- 元のTSV形式には引用符がないため、セルにタブや改行を含めることはできません。ExcelとGoogleスプレッドシートは、必要なときにExcel形式の引用符を付けます。ビューアーはどちらの形式も読めます。
- ファイル名と種類
- 多くは
.tsv、ときに.tabや.txt。登録されているメディアタイプはtext/tab-separated-valuesです。
TSVファイルにはデータ型がありません。どのセルも文字列で、何が数値や座標かはビューアーが判断します。GeoJSONへの書き出しでは、普通の数値は数値になり、郵便番号 01067 のように先頭が0のコードは文字列のまま残ります。
TSVとCSV:どちらを使うか
TSVとCSVは同じ種類の表を保存します。本当の違いは区切り文字だけですが、その違いにはいくつか実用上の影響があります。
| 項目 | TSV | CSV |
|---|---|---|
| 区切り文字 | タブ | カンマ(ヨーロッパ版のExcelの多くではセミコロン) |
| 値の中のカンマ | 問題なし。"Paris, France" のような住所に引用符は不要です。 | 値を引用符で囲む必要があります。 |
| 小数点のカンマ | 問題なし。52,52 は1つのセルです。 | 区切り文字とぶつかるため、一部の国ではExcelがセミコロンに切り替えます。 |
| 引用符のルール | 元の形式にはないので、cut や awk で簡単に読めます。 | RFC 4180の引用符ルールがあり、簡単なツールはよく扱いを誤ります。 |
| コピーと貼り付け | 表計算ソフトはセルをTSVとしてコピーするので、そのまま貼り付けられます。 | CSVを表計算ソフトに貼ると、多くの場合「区切り位置」の操作が必要です。 |
| 対応状況 | データツールでは広く使えますが、ダウンロード形式としては少し少なめです。 | ほぼどこでも使えます。 |
私の考え:データに住所、自由記述、小数点のカンマが含まれるなら、TSVのほうが安全です。値の中にタブが入ることはほとんどないからです。できるだけ多くのツールで使いたいならCSVで書き出してください。このビューアーは、どんなTSVでもワンクリックでCSVに変換します。
認識される列名
列名は整理してから比較します。大文字と小文字は区別せず、(WGS84) や [deg] のような括弧内の文字は取り除き、スペースとピリオドはアンダースコアにします。そのため Latitude (WGS84)、LAT.、gps latitude はすべて見つかります。一致するものがなければ、Coordinatesパネルで列を選びます。
- 緯度
lat、latitude、lati、y、ycoord、point_y、decimalLatitude、gps_lat、lat_dd、lat_wgs84、さらにBreite/Breitengrad、latitud、latitudine、緯度。- 経度
lng、lon、long、longitude、x、xcoord、point_x、decimalLongitude、gps_lon、lon_dd、さらにLänge/Längengrad、longitud、longitudine、経度。- 両方を持つ1つの列
coordinates、coords、latlng、lnglat、position、location、gps、wkt、geometryなどの名前で、セルに2つの数値("52.52, 13.40")またはWKTのポイント(POINT (13.40 52.52))がある場合。- 候補の選び方
- 考えられる緯度と経度の組み合わせを、最初の300行で試します。±90と±180に収まる値が最も多い組が選ばれます。同点のときは
x/yより本来のlat/lonの名前が優先されるので、メートル単位の投影座標のx/y列が度として扱われることはありません。 - 1つの列の中の順序
- WKTは常に経度が先です。
lnglatとlonlatは経度が先を意味します。それ以外のテキストの組は、Google Mapsと同じく緯度が先として読みます。ただし、逆の順序でしか有効な値にならない場合は別です。
技術的な詳細
ビューアーが受け付けるものと出力するものは次のとおりです。
- 入力
- 50 MBまでの
.tsv、.tab、.txtファイル、またはPaste TSV欄に貼り付けたタブ区切りのテキスト。.csvファイルには、CSV to Mapツールを案内するメッセージが出ます。 - 文字コード
- UTF-8。先頭のバイトオーダーマークは取り除きます。
- 座標の形式
- 十進法の度(
48.8584、48,8584)、度記号や方位の文字付き(48.8584° N、W 1.5115)、度分秒(48°51'30"N、48 51 30 N、48:51.5)。 - 有効な座標
- 緯度は−90〜90、経度は−180〜180(WGS84)。範囲外の行は数えられ、地図には表示されません。2つの値を入れ替えれば収まる行も数えられ、Swapボタンが表示されます。
- セル数がそろわない行
- 見出し行よりセルが少ない行は、空のセルで埋めます。余分なセルには
Column Nという名前の列が追加されます。Fileパネルに、そろわなかった行の数が表示されます。 - 表ビュー
- 1ページ100行、どの列でも並べ替え可能(数値は数値として並べます)、すべてのセルを検索する絞り込み欄、座標のある各行には、その点へ移動する ⌖ ボタンがあります。
- 列で色分け
- 異なる値が10種類までの列なら、凡例と値ごとの件数付きで点を色分けできます。
- 書き出し
- GeoJSONは地図上の行だけを含み、各列がプロパティになります。CSVは座標のない行も含めた表全体です。
- プライバシー
- ファイルはブラウザ内で読み込まれます。インターネットから読み込むのはベースマップのタイルだけです。
TSVファイルを開く手順
組み込みのサンプルを使った流れ全体です。サンプルは Latitude と Longitude の列を持つヨーロッパの名所29件で、そのうち1行には座標がありません。ステップ6では、座標の列名が珍しいファイルがどうなるかを示します。

地図は道路のベースマップ付きで開きます。Upload、Paste TSVを使うか、ファイルを地図にドラッグします。ここではSample Dataをクリックしました。

Fileパネルには、サイズ、行数と列数、1行目を列名として読んだかどうかが表示されます。29行のうち28行が地図上にあり、プリトヴィツェ湖群の行は座標のセルが空です。

Coordinatesパネルには、見つかった列、ここでは Latitude と Longitude が表示されます。いつでも別の列を選べますし、"48.85, 2.29" や POINT (2.29 48.85) のようなセルなら「One column」に切り替えます。

「Color by column」で列を選びます。ここでは Category で名所の種類ごとに色を分け、凡例と件数を表示しています。点をクリックすると、その行の内容が読めます。

Tableをクリックするとすべての行が見られます。座標の列は強調表示されます。列名をクリックすると並べ替え、絞り込み欄に入力すると検索、⌖ をクリックすると地図上のその行へ移動します。

この貼り付けたリストは N と E という列を使っており、ビューアーはこれを座標の名前として扱いません。そのため、メッセージ付きの表で開きます。Coordinatesパネルで N を緯度、E を経度に選ぶと地図が開きます。
TSVファイルを開くほかの方法
このビューアーはTSVファイルを見るいちばん速い方法です。同じファイルが大きな作業の一部なら、私は次のツールを使います。
ExcelとGoogleスプレッドシート
どちらもTSVを表として開きます。Excelでは[データ]>[テキストまたはCSVから]を使い、区切り記号に「タブ」を選びます。.tsv ファイルをダブルクリックすると、すべてが1つの列に入ることがあります。どちらも行を地図には表示しません。
QGIS
[レイヤ]>[レイヤを追加]>[CSVテキストレイヤを追加]で、「カスタム区切り」の「タブ」を選ぶとTSVを読めます。X属性に経度、Y属性に緯度を設定し、CRSをEPSG:4326にします。
pandasとGeoPandasを使ったPython
pandas.read_csv は sep="\t" でTSVを読みます。郵便番号のようなコードの先頭の0が消えないよう、すべての列を文字列(dtype=str)で読み、座標だけを数値に変換します。
GDALとコマンドライン
ogr2ogr は、1つのコマンドでTSVファイルをGeoJSON、シェープファイル、GeoPackageに変換します。TSVは通常引用符を使わないので、cut や awk でも安全に分割できます。
同じ作業をコードで
どの例も、`Latitude` と `Longitude` の列に座標があるこのページのサンプルファイルを使います。
# Python: pandas reads TSV with sep="\t", GeoPandas builds the points
import pandas as pd
import geopandas as gpd
df = pd.read_csv("landmarks.tsv", sep="\t", dtype=str)
df = df.dropna(subset=["Latitude", "Longitude"])
gdf = gpd.GeoDataFrame(
df,
geometry=gpd.points_from_xy(df["Longitude"].astype(float), df["Latitude"].astype(float)),
crs="EPSG:4326",
)
gdf.to_file("landmarks.geojson", driver="GeoJSON")# GDAL / OGR: TSV to GeoJSON in one command ogr2ogr -f GeoJSON landmarks.geojson landmarks.tsv \ -oo X_POSSIBLE_NAMES=Longitude -oo Y_POSSIBLE_NAMES=Latitude \ -a_srs EPSG:4326
# Command line: print name and coordinates, skip rows without a latitude
awk -F'\t' 'NR > 1 && $6 != "" { print $2 ": " $6 ", " $7 }' landmarks.tsv
# Only the columns you need (cut splits on tabs by default)
cut -f2,6,7 landmarks.tsv私の考え:新しいファイルを見て座標を確認するには、このビューアーを使ってください。列がわかったら、データが変わるたびにogr2ogrや数行のpandasで変換できます。
ビューアーの仕組み
ファイルをドロップしてから地図や表が表示されるまでに起こることです。どの処理もブラウザ内で行われます。
- 区切り文字を確認する. 最初の数行にタブ文字があるかを調べます。タブがなく、カンマやセミコロンがある場合は、ファイルがおそらくCSVであるというメッセージを表示します。
- 行とセルに分ける. Papa Parseがタブと改行でテキストを分け、Excel形式の引用符も理解します。引用符のせいで行が壊れる場合は、元のTSV形式と同じく、すべての引用符を普通の文字として読み直します。
- 見出し行を見つける. 1行目が2行目と同じ列に数値を持っていればデータとみなし、列の名前は
Column 1、Column 2のようになります。そうでなければ、1行目を列名とします。空の名前は補い、重複した名前には(2)、(3)を付けます。 - 座標を検出する. 列名を整理し、上の一覧と比べます。候補の組を最大300行で試し、有効な値が最も多い組を選びます。合う組がなければ、両方の値を持つ列を試します。
- 地図か表か. 座標があれば、各行を十進法の度または度分秒として読み、無効な行を数え、点をcanvasレイヤーに描きます。座標がなければ、代わりに表が開きます。
- 何でも変更できる. 見出し行の扱い、座標の列、順序、色はサイドバーで変えられます。地図と表はすぐに更新されます。
検出は最初の推測にすぎません。どの選択もサイドバーで変えられるので、推測が外れてもクリック1回で直せます。
座標の読み方:度分秒、範囲、精度
TSVファイルの座標にはいくつかの形があります。次の3つの項目で、ビューアーがそれを点に変える方法と、数値が正しいかを見分ける方法を説明します。
1. 度分秒から十進法の度へ
古いデータ、測量の一覧、GPS機器は、座標を度・分・秒(DMS)で書くことがよくあります。1度は60分、1分は60秒です。南と西はマイナスになります。
decimal = degrees + minutes / 60 + seconds / 3600 52°31'12"N → 52 + 31/60 + 12/3600 = 52.52 13°24'18"E → 13 + 24/60 + 18/3600 = 13.405 33°52'08"S → −(33 + 52/60 + 8/3600) = −33.8689
ビューアーは、度記号、分と秒の記号(′ ″ または ' ")、コロン、スペース、d・m・sの文字を読み、方位の文字は数値の前でも後でもかまいません。分や秒が60以上の値は正しいはずがないので拒否します。
2. 有効な範囲と入れ替わった列
緯度は南極の−90から北極の+90までです。経度は−180から+180までです。ある組が範囲に収まらず、2つの数値を入れ替えると収まる場合は、列が入れ替わっている可能性が高いです。
valid ⇔ −90 ≤ latitude ≤ 90 and −180 ≤ longitude ≤ 180 stored: lat = 151.21, lon = −33.87 → invalid swapped: lat = −33.87, lon = 151.21 → valid (Sydney)
両方の数値が−90〜90の間にあると、どちらの順序も有効なので、この確認は役に立ちません。エッフェル塔を (48.8584, 2.2945) ではなく (2.2945, 48.8584) として保存すると、ソマリア沖のインド洋に置かれてしまいます。点が世界の違う場所にある場合は、Swapを押してもう一度見てください。数千や数百万の値はそもそも度ではなく、おそらくUTMやWebメルカトルのメートル値です。
3. 小数の桁数と精度
緯度1度は約111 kmです。経度1度は赤道で約111 kmで、緯度のコサインに比例して短くなります。小数を1桁増やすごとに、位置は約10倍正確になります。
1° latitude ≈ 111 320 m 1° longitude ≈ 111 320 m · cos(latitude) decimals latitude step longitude step in Paris (48.86°) 1 11.1 km 7.3 km 2 1.1 km 730 m 3 111 m 73 m 4 11.1 m 7.3 m 5 1.1 m 0.73 m 6 0.11 m 0.07 m
サンプルファイルのような小数4桁で、建物を特定するには十分です。5桁ならドアまでわかります。6桁を超えても実際の精度は上がりません。そうした桁は、たいてい表計算ソフトやデータベースでの変換から生まれたものです。
このビューアーが役立つ場面
私がTSVビューアーを開くのは、次のような場面です。
- データポータルからのダウンロードを確認する. 生物多様性や地名のデータベースなど、多くの研究機関や行政のポータルがTSVでのダウンロードを提供しています。レコードがどこにあり、どれに座標がないかがすぐにわかります。
- データベースの書き出しを見る. データベースツールは、タブ区切りのテキストを書き出すことがよくあります。表として開き、並べ替えや絞り込みをして、位置の列を地図で確認します。
- 表計算ソフトのセルを地図にする. ExcelやGoogleスプレッドシートでセルを選んでコピーし、Paste TSVに貼り付けます。ファイルを保存しなくても、行が地図に表示されます。
- 座標のないファイルを読む. すべてのTSVファイルが地理データとは限りません。並べ替えと絞り込みができる表ビューは、表計算ソフトを開かずにタブ区切りファイルを読む手早い方法です。
- TSVをCSVやGeoJSONに変換する. TSVを読めないツール用にCSVを、QGIS、ArcGIS、Web地図用にGeoJSONを作れます。
- 間違った座標を見つける. 値がない行、範囲外の行、入れ替わった行の件数と地図そのものが、長い数値の一覧では気づきにくい誤りを示します。
- 度分秒の座標を読む. 度・分・秒で書かれた測量の一覧や古いデータも、先に変換しなくてもそのまま読めます。
- 列で点をグループ分けする. 種類、状態、地域で色分けすると、どの場所がどのカテゴリーに属するかといった傾向が見えます。
よくある質問
1. TSVファイルをオンラインで開くには?
Uploadをクリックするか、ファイルを地図にドラッグするか、テキストをPaste TSVに貼り付けます。座標のあるファイルは地図で、それ以外は表で開きます。何もインストールせず、何もアップロードしません。
2. TSVファイルとは何ですか?
1行に1件のレコードがあり、列の間がタブ文字で区切られたプレーンテキストのファイルです。カンマの代わりにタブを使うCSVのようなものです。拡張子は多くの場合 .tsv です。
3. ファイルに座標がない場合はどうなりますか?
ビューアーは、並べ替え、絞り込み、1ページ100行の表でデータを表示し、座標の列が見つからなかったことをメッセージで知らせます。別の名前で座標があるなら、Coordinatesパネルで列を選ぶと地図が開きます。
4. 違う列が選ばれました。どう変えますか?
Coordinatesパネルで緯度と経度の列を選びます。地図はすぐに更新されます。緯度と経度が入れ替わっている場合はSwapをクリックします。
5. 度分秒の座標は読めますか?
はい。52°31'12"N、52 31 12 N、52:31.2 のような値は十進法の度に変換されます。SとWは値をマイナスにします。
6. 数値の小数点にカンマを使っています。大丈夫ですか?
はい。52,52 は52.52として読みます。TSVではカンマが区切り文字ではないので、問題になりません。
7. 1行目が見出しでない場合は?
ビューアーが自動で確認します。判断が違っていたら、Fileパネルの「First row」を「Column names」か「Data」に変えてください。見出しがない場合、列名は Column 1、Column 2 のようになります。
8. ExcelやGoogleスプレッドシートのデータを貼り付けられますか?
はい。表計算ソフトのセルをコピーすると、タブ区切りのテキストとしてコピーされます。Paste TSVをクリックして貼り付け、Show Dataをクリックします。
9. ここでCSVファイルを開けますか?
いいえ。このビューアーが読むのはタブ区切りのファイルだけです。カンマ区切りやセミコロン区切りのファイルには、このサイトのCSV to Mapツールを使ってください。
10. 書き出したファイルには何が入りますか?
GeoJSONファイルには地図上の行だけが入り、各列がプロパティになります。CSVファイルには、座標のない行も含めた表全体が入ります。
11. ファイルの大きさの上限は?
50 MBまでです。点はcanvasに描くので、数万行でもなめらかに動きます。表は1ページに100行を表示します。
12. データはアップロードされますか?
いいえ。ファイルはブラウザ内で読み込まれ、書き出しもブラウザ内で作られます。インターネットから読み込むのはベースマップのタイルだけです。
ライブラリとクレジット
座標の検出、度分秒の読み取り、表はこのサイトのために書きました。地図とTSVの読み込みにはオープンソースソフトウェアを使っています。
- Leaflet 1.9 · BSD-2-Clause · Volodymyr Agafonkin and contributorsインタラクティブな地図、canvasの点レイヤー、ポップアップを描画します。
- Papa Parse 5 · MIT · Matt Holt and contributorsTSVのテキストを行とセルに分けます。Excel形式の引用符付きセルにも対応します。
- OpenStreetMap, Protomaps (hosted by KONAKTIVE), CARTO, Esri World Imagery · ODbLと提供元の利用規約 · OpenStreetMap contributors, Protomaps, KONAKTIVE, CARTO, Esriベースマップのタイルと衛星画像。
関連ツール
TSVファイルはブラウザ内で読み込まれ、サーバーにアップロードされることはありません。サンプルの座標は、小数4桁に丸めた名所の位置です。 地図タイル © OpenStreetMap の貢献者、Protomapsで描画(ホスティング:KONAKTIVE)、予備としてCARTO。 衛星画像:Esri。
