OnlineMapMaker logo

TSV Viewer: Open Tab-Separated Files on a Map or as a Table

Open a .tsv file or paste cells copied from a spreadsheet. If the data has latitude and longitude columns, the viewer finds them and puts every row on a map. You can choose other columns yourself. A file without coordinates opens as a simple table that you can sort and filter. Open fullscreen version →

Rate this tool:
Advertisement
Advertisement
Loading viewer…
Need assistance with your GIS project?Explore Our Services

What this viewer does

TSV (tab-separated values) is one of the simplest data formats there is: one row per line, and a tab character between the columns. Many tools write it. Databases export it, scientific portals offer it for download, and when you copy cells from Excel or Google Sheets, the clipboard holds TSV. The problem is that a TSV file opened in a text editor is hard to read, because the columns do not line up.

This viewer reads the file and shows it in the most useful form. First it looks at the column names. If it finds a latitude and a longitude column, for example Latitude/Longitude, lat/lon, Breitengrad/Längengrad or 緯度/経度, every row with valid values appears as a point on the map. It also reads coordinates in degrees, minutes and seconds, numbers with a comma as the decimal sign, and single columns such as "52.52, 13.40" or POINT (13.40 52.52). If it finds nothing, it shows the data as a table, and you can still choose the coordinate columns yourself.

I built it for the quick look at a file someone sent you. You can check where the rows are, color the points by any column, click a point to read the row, switch to the table to sort and filter, and jump from a table row to its point. When you are done, you can download the rows on the map as GeoJSON, or the whole table as CSV. The file stays in your browser and is never uploaded.

Advertisement
Advertisement

What a TSV file looks like

Here are the header and three rows of the sample file used on this page. Each → stands for one tab character, which is invisible in most editors. The last row has empty latitude and longitude cells, so the viewer counts it as a row without coordinates.

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→→
Delimiter
One tab character (\t, Unicode U+0009) between two cells. Two tabs in a row mean an empty cell.
Rows
One record per line. Windows (\r\n) and Unix (\n) line endings both work. Empty lines are skipped.
First row
Usually the column names. The viewer decides this by itself: if the first row has numbers in the same columns as the second row, it is data. You can change the choice in the File panel.
Quotes
The original TSV format has no quoting, so a cell can never contain a tab or a line break. Excel and Google Sheets add Excel-style quotes when a cell needs them. The viewer reads both styles.
File names and type
Usually .tsv, sometimes .tab or .txt. The registered media type is text/tab-separated-values.

A TSV file has no data types. Every cell is text, and the viewer decides what a number or a coordinate is. In the GeoJSON export, plain numbers become numbers, while codes with a leading zero, such as the postcode 01067, stay text.

TSV vs. CSV: which one to use

TSV and CSV store the same kind of table. The only real difference is the separator, but that difference has a few practical effects.

PointTSVCSV
SeparatorTabComma (or a semicolon in many European versions of Excel)
Commas inside valuesNo problem: addresses such as "Paris, France" need no quotes.The value must be put in quotes.
Decimal commasNo problem: 52,52 is one cell.They clash with the separator, which is why Excel switches to semicolons in some countries.
Quoting rulesNone in the original format, so files are easy to read with cut or awk.RFC 4180 quoting, which simple tools often get wrong.
Copy and pasteSpreadsheets copy cells as TSV, so pasting just works.Pasting CSV into a spreadsheet often needs a "split text" step.
SupportGood in data tools, a bit less common as a download option.Supported almost everywhere.

My take: if your data has addresses, free text or decimal commas, TSV is the safer choice, because a tab almost never appears inside a value. If you need the widest support, export CSV. This viewer converts any TSV to CSV with one click.

Which column names are recognised

Column names are compared after a cleanup: upper and lower case are ignored, text in brackets such as (WGS84) or [deg] is removed, and spaces and dots become underscores. So Latitude (WGS84), LAT. and gps latitude are all found. If nothing matches, you choose the columns in the Coordinates panel.

Latitude
lat, latitude, lati, y, ycoord, point_y, decimalLatitude, gps_lat, lat_dd, lat_wgs84, plus Breite/Breitengrad, latitud, latitudine and 緯度.
Longitude
lng, lon, long, longitude, x, xcoord, point_x, decimalLongitude, gps_lon, lon_dd, plus Länge/Längengrad, longitud, longitudine and 経度.
One column with both
Names such as coordinates, coords, latlng, lnglat, position, location, gps, wkt or geometry, when the cells hold two numbers ("52.52, 13.40") or a WKT point (POINT (13.40 52.52)).
Choosing between candidates
Every possible latitude/longitude pair is tested on the first 300 rows. The pair with the most values inside ±90 and ±180 wins. x/y lose ties against real lat/lon names, so projected x/y columns in metres are never taken as degrees.
Order in one column
WKT is always longitude first. lnglat and lonlat mean longitude first. Other text pairs are read as latitude first, the order Google Maps uses, unless only the other order gives valid values.

Technical details

This is exactly what the viewer accepts and produces.

Input
.tsv, .tab and .txt files up to 50 MB, or tab-separated text pasted into the Paste TSV box. A .csv file gets a message pointing to the CSV to Map tool.
Encoding
UTF-8. A byte order mark at the start is removed.
Coordinate formats
Decimal degrees (48.8584, 48,8584), with a degree sign or hemisphere letter (48.8584° N, W 1.5115), and degrees-minutes-seconds (48°51'30"N, 48 51 30 N, 48:51.5).
Valid coordinates
Latitude between −90 and 90, longitude between −180 and 180 (WGS84). Rows outside these ranges are counted and left off the map. Rows that would fit with the two values swapped are counted too, with a Swap button.
Uneven rows
Rows with fewer cells than the header are filled with empty cells. Extra cells get their own columns, named Column N. The File panel shows how many rows were uneven.
Table view
100 rows per page, sorting by any column (numbers are sorted as numbers), a filter box that searches every cell, and a ⌖ button on each row with coordinates that jumps to its point.
Color by column
Any column with up to 10 different values can color the points, with a legend and a count per value.
Export
GeoJSON with the rows that are on the map, every column as a property. CSV with the whole table, including rows without coordinates.
Privacy
The file is read in your browser. Only the basemap tiles come from the internet.

How to open a TSV file, step by step

Here is the whole workflow with the built-in sample: 29 European landmarks with Latitude and Longitude columns, where one row has no coordinates. Step 6 shows what happens with a file whose coordinate columns have unusual names.

Empty TSV Viewer with the Upload, Paste TSV and Sample Data buttons above a world map
1
Step 1: Open the viewer

The map opens with a street basemap. Use Upload, Paste TSV, or drag a file onto the map. Here I clicked Sample Data.

Landmark points on a map of Europe with the File panel showing 28 on the map and 1 without coordinates
2
Step 2: Check the file

The File panel shows the size, the number of rows and columns, and whether the first row was read as column names. 28 of the 29 rows are on the map; the Plitvice Lakes row has empty coordinate cells.

Coordinates panel with Two columns selected and the Latitude and Longitude columns chosen
3
Step 3: Confirm the coordinate columns

The Coordinates panel shows the columns that were found, here Latitude and Longitude. Pick other columns at any time, or switch to "One column" for cells such as "48.85, 2.29" or POINT (2.29 48.85).

Landmark points colored by category with a legend for monument, church, tower, museum, bridge, castle and palace
4
Step 4: Color the points by a column

Pick a column under "Color by column". Here Category gives every type of landmark its own color, with a legend and a count. Click any point to read its row.

Table view of the landmark file with highlighted Latitude and Longitude columns and a filter box
5
Step 5: Switch to the table

Click Table to see every row. The coordinate columns are highlighted. Click a column name to sort, type in the filter box to search, and click ⌖ to jump to that row on the map.

Table view of a pasted station list with a note that no coordinate columns were found and the Coordinates panel highlighted
6
Step 6: A file without recognised coordinates

This pasted list uses the columns N and E, which the viewer does not treat as coordinate names. So it opens as a table with a note. Choose N as latitude and E as longitude in the Coordinates panel and the map opens.

Advertisement
Advertisement

Other ways to open a TSV file

This viewer is the quickest way to look at a TSV file. When the same file is part of a bigger job, these are the tools I use.

Excel and Google Sheets

Both open TSV as a table. In Excel, use Data > From Text/CSV and choose Tab as the delimiter; a double-click on a .tsv file may put everything in one column. Neither shows the rows on a map.

QGIS

Layer > Add Layer > Add Delimited Text Layer reads TSV when you choose "Tab" under "Custom delimiters". Set the X field to the longitude and the Y field to the latitude, and the CRS to EPSG:4326.

Python with pandas and GeoPandas

pandas.read_csv reads TSV with sep="\t". Read every column as text (dtype=str) so codes such as postcodes keep their leading zeros, then convert only the coordinates to numbers.

GDAL and the command line

ogr2ogr turns a TSV file into GeoJSON, a Shapefile or a GeoPackage in one command. Because TSV has no quoting by default, cut and awk can also split it safely.

The same job in code

All examples use the sample file from this page, with the coordinates in the `Latitude` and `Longitude` columns.

# 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

My take: use this viewer to look at a new file and check its coordinates. Once you know the columns, ogr2ogr or a few lines of pandas do the conversion every time the data changes.

How the viewer works

This is what happens between dropping a file and seeing the map or the table. Every step runs in your browser.

  1. Check the separator. The first lines are checked for tab characters. If there are none but there are commas or semicolons, you get a message that the file is probably CSV.
  2. Split rows and cells. Papa Parse splits the text on tabs and line breaks and handles Excel-style quotes. If quotes are used in a way that breaks the rows, the file is read again with every quote mark taken as plain text, which is how the original TSV format works.
  3. Find the header. If the first row has numbers in the same columns as the second row, it is data and the columns are named Column 1, Column 2, and so on. Otherwise it holds the column names. Empty names are filled in, and repeated names get (2), (3).
  4. Detect the coordinates. Column names are cleaned up and compared with the lists above. Every candidate pair is tested on up to 300 rows, and the pair with the most valid values wins. If no pair fits, columns holding both values are tried.
  5. Map or table. With coordinates, each row is read as decimal degrees or degrees-minutes-seconds, invalid rows are counted, and the points are drawn on a canvas layer. Without coordinates, the table opens instead.
  6. Change anything. The header choice, the coordinate columns, the order and the colors can all be changed in the sidebar. The map and the table update at once.

Detection only makes a first guess. Every choice can be changed in the sidebar, so a wrong guess costs one click.

Reading coordinates: DMS, ranges and precision

Coordinates in TSV files come in several forms. These three blocks explain how the viewer turns them into points, and how to tell whether the numbers make sense.

1. Degrees, minutes and seconds to decimal degrees

Older data, survey lists and GPS devices often write coordinates in degrees, minutes and seconds (DMS). One degree has 60 minutes, and one minute has 60 seconds. South and West are negative.

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

The viewer reads the degree sign, the prime marks (′ ″ or ' "), colons, spaces and the letters d, m and s, with the hemisphere letter before or after the number. A value with 60 or more minutes or seconds is rejected, because it cannot be correct.

2. Valid ranges and swapped columns

Latitude goes from −90 at the South Pole to +90 at the North Pole. Longitude goes from −180 to +180. If a pair does not fit but would fit with the two numbers swapped, the columns are probably mixed up.

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)

When both numbers are between −90 and 90, both orders are valid and the test cannot help. The Eiffel Tower stored as (2.2945, 48.8584) instead of (48.8584, 2.2945) lands in the Indian Ocean, off the coast of Somalia. If your points are in the wrong part of the world, press Swap and look again. Values in the thousands or millions are not degrees at all: they are probably UTM or Web Mercator metres.

3. Decimal places and precision

One degree of latitude is about 111 km. One degree of longitude is about 111 km at the equator and shrinks with the cosine of the latitude. Each extra decimal place makes the position about ten times more precise.

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

Four decimals, as in the sample file, are enough to find a building. Five find a door. More than six decimals add no real accuracy; they usually come from a conversion in a spreadsheet or a database.

Advertisement
Advertisement

When this viewer helps

These are the situations where I open a TSV viewer.

  1. Checking a download from a data portal. Many scientific and government portals, such as biodiversity and gazetteer databases, offer TSV downloads. See at once where the records are and which ones have no coordinates.
  2. Looking at a database export. Database tools often export tab-delimited text. Open it as a table, sort and filter it, and check the location columns on the map.
  3. Mapping cells from a spreadsheet. Select cells in Excel or Google Sheets, copy, and paste them into Paste TSV. The rows appear on the map without saving a file.
  4. Reading a file with no coordinates. Not every TSV file is geographic. The table view with sorting and filtering is a quick way to read any tab-separated file, without opening a spreadsheet.
  5. Converting TSV to CSV or GeoJSON. Get a CSV for tools that do not read TSV, or a GeoJSON file for QGIS, ArcGIS or a web map.
  6. Finding bad coordinates. The counts for missing, out-of-range and swapped values, plus the map itself, show errors that are hard to see in a long list of numbers.
  7. Reading DMS coordinates. Survey lists and older data in degrees, minutes and seconds are read directly, without converting them first.
  8. Grouping points by a column. Color by type, status or region to see patterns, for example which sites belong to which category.

Frequently asked questions

1. How do I open a TSV file online?

Click Upload, drag the file onto the map, or paste the text into Paste TSV. Files with coordinates open on the map, all other files open as a table. Nothing is installed and nothing is uploaded.

2. What is a TSV file?

A plain text file with one row per line and a tab character between the columns. It is like CSV, with tabs instead of commas. The file extension is usually .tsv.

3. What happens if my file has no coordinates?

The viewer shows the data as a table with sorting, a filter and pages of 100 rows, and a note says that no coordinate columns were found. If the file does have coordinates under another name, choose the columns in the Coordinates panel and the map opens.

4. The wrong columns were picked. How do I change them?

Choose the latitude and longitude columns in the Coordinates panel. The map updates at once. If latitude and longitude are mixed up, click Swap.

5. Can it read coordinates in degrees, minutes and seconds?

Yes. Values such as 52°31'12"N, 52 31 12 N or 52:31.2 are converted to decimal degrees. S and W make the value negative.

6. My numbers use a comma as the decimal sign. Does that work?

Yes. 52,52 is read as 52.52. In TSV this causes no problem, because the comma is not the separator.

7. What if the first row is not a header?

The viewer checks this by itself. If it guessed wrong, change "First row" in the File panel to "Column names" or "Data". Without a header, the columns are named Column 1, Column 2, and so on.

8. Can I paste data from Excel or Google Sheets?

Yes. When you copy cells from a spreadsheet, they are copied as tab-separated text. Click Paste TSV, paste, and click Show Data.

9. Can I open a CSV file here?

No. This viewer reads tab-separated files only. For comma- or semicolon-separated files, use the CSV to Map tool on this site.

10. What do the exports contain?

The GeoJSON file holds only the rows that are on the map, with every column as a property. The CSV file holds the whole table, including rows without coordinates.

11. How large can the file be?

Up to 50 MB. Points are drawn on a canvas, so tens of thousands of rows stay smooth. The table shows 100 rows per page.

12. Is my data uploaded?

No. The file is read in your browser, and the exports are made in your browser too. Only the basemap tiles are loaded from the internet.

Libraries and credits

The coordinate detection, the DMS reader and the table were written for this site. The map and the TSV parsing use open source software.

Related tools

TSV files are read in your browser and never uploaded to a server. The sample coordinates are landmark positions rounded to 4 decimals. Map tiles © OpenStreetMap contributors, drawn with Protomaps (hosted by KONAKTIVE), with CARTO as the fallback. Satellite imagery: Esri.

Muhammad Gulraiz Khan, GIS Expert and Founder of KONAKTIVE and OnlineMapMaker.com

About the Author

Muhammad Gulraiz Khan

GIS Expert & Consultant · Founder, KONAKTIVE

Muhammad Gulraiz Khan is a GIS expert with over a decade of professional experience delivering geospatial solutions for the energy sector, including projects for the World Bank, the International Finance Corporation (IFC), and USAID. He built OnlineMapMaker.com to make professional-grade mapping tools free and accessible to everyone.

Advertisement
Advertisement