GIS file format sizes compared: 1 dataset, 8 formats
The same 10,000 points took 5.18 MB in one format and 0.33 MB in another. I measured GIS file format sizes with a controlled test. One identical dataset went through this site's engine into seven other formats, and every output was measured, re-opened and read back. Size was not the only difference.
Key facts
- One identical 10,000-point dataset ranged from 5.18 MB (KML) to 0.33 MB (KMZ), a 16-to-1 spread.
- A shapefile's .dbf was 89% of its 3.18 MB total; GPX kept only 1 of 6 attribute fields.
- Seven decimal places of coordinate precision survived every format tested.
How the test was run
The data
The dataset is 10,000 survey-style points spread across a realistic region, each with seven-decimal coordinates and six attribute columns: id, name, category, elevation_m, recorded_at and surveyor_note. The notes deliberately include accented text, so encoding survival gets tested too.
The engine
Every conversion ran through GDAL 3.8.4 compiled to WebAssembly, which is exactly the engine behind the converters on this site. The flags match what the site passes, so these numbers describe what you actually download here.
The check
Each output was re-opened with GDAL and read back, so the table reports not just size but what survived the trip: fields, field names, dates and coordinates. The dataset comes from a fixed seed, which means anyone can reproduce the run byte for byte.
The results: one dataset, eight sizes
| Format | Size | Vs source | Attributes kept | Worth knowing |
|---|---|---|---|---|
| KML | 5,181,390 B | 1.9x | All 6, in ExtendedData | Largest by far; simple readers may surface only the name |
| Shapefile (5 files) | 3,180,576 B | 1.2x | All 6, names truncated | The .dbf alone is 89% of the total |
| GeoJSON (source) | 2,690,891 B | 1.0x | All 6 | The baseline the others were made from |
| GeoPackage | 1,994,752 B | 0.74x | 5 fields + id becomes the FID | Keeps full date-and-time values |
| CSV | 1,198,910 B | 0.45x | All 6, plus X and Y columns | Dates are reformatted |
| GPX | 728,185 B | 0.27x | Only the name | The GPX schema rejected the other 5 fields |
| Excel (.xlsx) | 583,041 B | 0.22x | All 6, plus X and Y columns | Numbers arrive typed as numbers |
| KMZ | 328,535 B | 0.12x | Same as KML | Just the KML, zipped; smallest of all |
The spread is enormous: the same points, the same attributes and the same precision take 5.2 MB as KML but 0.3 MB as KMZ, which means the container matters more than the content.
Why the sizes differ
KML repeats itself
KML is XML, and every one of the 10,000 placemarks carries its own opening tags, closing tags and field names, repetition that is exactly what compression loves. Zip the KML into a KMZ and it shrinks by 94%, which is why converting KML to KMZ before emailing is almost always worth it.
A shapefile's bulk is its table
The shapefile surprised me from the other direction: its geometry file (.shp) is a lean 280,100 bytes, while the attribute table, the .dbf, runs to 2,820,226 bytes, or 89% of the whole set. The dBASE format pads every text field to a fixed width with spaces, so short values still occupy their full column width, and wide text columns inflate a shapefile fast.
Containers and casualties
GeoPackage stores the same data in a binary SQLite database, which is why it lands 26% under the GeoJSON source while keeping everything queryable; GeoPackage vs shapefile compares the two container heavyweights in depth. Excel looks small for a similar reason, because a modern .xlsx is itself a zip archive of XML sheets. GPX looks small for a worse one: it kept one field out of six, so its 0.7 MB is not a fair fight.
What each format quietly changed
Sizes are visible at a glance; the content changes are sneakier. These are the ones the read-back caught:
- Shapefile truncated three field names: the .dbf caps names at 10 characters, so elevation_m became elevation_, recorded_at became recorded_a, and surveyor_note became surveyor_n. The values survived even though the headers did not.
- Shapefile also dropped the time of day: its date type stores 2026-06-26 but not 08:02, while GeoPackage kept the full timestamp.
- GPX kept only the name: the GPX schema has fixed waypoint fields, so id, category, elevation_m, recorded_at and surveyor_note were all rejected on write.
- GeoPackage absorbed the id column: it became the layer's feature ID rather than a regular attribute, which is correct behavior but can surprise you on export.
- KML stored everything, yet many tools show little: all six attributes were written as structured ExtendedData, which Google Earth displays and simple KML parsers often skip in favor of the name alone.
- CSV and Excel kept every field and gained X and Y coordinate columns at the end of each row, so the location survives in a plain table. Accented text (the é and the ± in the notes) came through intact in every format.
Coordinate precision: nothing was lost
Precision worried me most, and it turned out to be a non-issue. The first point went in at longitude 62.8441543 and latitude 32.1100421, and every geographic format returned exactly those digits: KML, the shapefile, GeoPackage and GPX alike, with the CSV and Excel tables carrying them as text columns unchanged. Seven decimal places is roughly a centimeter on the ground, and it survived every conversion. If your data lands in the wrong place after a conversion, precision is not the culprit; the coordinate system usually is.
Download the test data and try it yourself
Here is a 100-point cut of the exact benchmark dataset, in every format from the table. Drop one into any converter on this site and compare what comes out, or open the files side by side in QGIS:
GeoJSON CSV KML GPX Excel GeoPackage Shapefile (zip)
Checking GIS file format sizes on your own data takes about a minute per format. Three things to remember: zip your KML, expect the .dbf to dominate a shapefile, and never send attributes on a round trip through GPX.
“Nobody in this niche publishes the actual numbers, so I measured them: the same points through eight formats. The container matters far more than the content.”
Frequently asked questions
Which format keeps every attribute?
GeoPackage, GeoJSON, CSV and Excel kept every field and full field names in this test. Shapefile keeps the values but truncates names to 10 characters and drops time of day from timestamps, while GPX keeps little beyond the waypoint name.
Does converting lose coordinate precision?
Not in this test. All seven decimal places, roughly centimeter level, came back identical from every format. If data lands in the wrong place after a conversion, the coordinate system is the usual cause, not precision.
Can I repeat the test?
Yes. The dataset comes from a fixed seed, and a 100-point cut is linked above in every format. Download the sample files and drop them into any converter on this site.
Which GIS file format is smallest for the same data?
In this 10,000-point test, KMZ was smallest at 328,535 bytes, followed by Excel at 583,041 bytes. GPX was also small, but only because it dropped five of the six attribute fields on write.
Why is my shapefile so much bigger than the same data as GeoJSON?
The attribute table is the usual reason. The .dbf format pads every text field to a fixed width, and in this test the .dbf was 89% of the shapefile's 3.18 MB total. Wide text columns inflate it quickly.