What is a GeoTIFF?
Satellite imagery, DEMs and other raster GIS data often come as files ending in .tif or .tiff. A GeoTIFF is a TIFF image that also contains geospatial metadata. That metadata can tell GIS software:
- Where the image is located
- Its coordinate reference system
- Its pixel size
- Its geographic extent
- How pixels relate to real-world coordinates
What a GeoTIFF can contain
GeoTIFFs are commonly used for satellite imagery, DEMs, orthomosaics, land-cover rasters, NDVI maps and temperature datasets.
Why it is so popular
It is widely supported by GIS and remote-sensing software, including QGIS, ArcGIS, GDAL and Rasterio.
What is a GeoPackage?
A single shapefile layer can require several files. GeoPackage was designed as a more modern and convenient alternative. It is a geospatial data format based on SQLite, with the extension .gpkg.
Why it is useful
One GeoPackage can store multiple layers. A single file could hold roads, buildings, rivers, administrative boundaries and land parcels.
It supports vector features, raster and tile data, attributes and spatial metadata, so it works for many GIS workflows.
Shapefile vs GeoPackage
Shapefiles have been around for decades and are still widely supported. For a new GIS project, the choice is often between a shapefile and a GeoPackage.
| Shapefile | GeoPackage | |
|---|---|---|
| Files | Several, such as roads.shp, roads.shx, roads.dbf and roads.prj | Usually one .gpkg file |
| Layers | Generally one layer per shapefile | Multiple layers in one file |
| Attributes | More restrictive structure | More flexible |
| Based on | A collection of separate files | SQLite |
| Compatibility | Extremely widespread | Increasingly preferred for modern GIS workflows |
Exchange formats: GeoJSON, KML and GML
Three text-based formats are used to pass vector data between systems.
| Format | What it is | Coordinate system | Good for |
|---|---|---|---|
| GeoJSON | Features with geometry and properties, written in JSON | WGS 84 longitude and latitude | Web maps and APIs |
| KML | XML for Google Earth and similar viewers, with styles, folders and descriptions | WGS 84 | Sharing placemarks and simple drawings |
| GML | An XML standard from the Open Geospatial Consortium | Any, declared in the file | Exchange between agencies and services |
GeoJSON is simple and widely supported, and its coordinates are always in WGS 84. It has no styling, and large files become slow. KML stores points, lines and polygons together, and a GIS usually lists them as separate layers when you open the file. A KMZ file is a zipped KML. GML is verbose and often comes with a schema file ending in .xsd, which you should keep alongside it.
GeoJSON and KML write longitude before latitude, and some other systems write latitude first. If the two are swapped, Bengaluru, at about 77.6 degrees east and 13 degrees north, ends up far north near Svalbard. When features land in the wrong place, check the order first.
Raster vs vector
Vector data represents features as points, lines and polygons. Raster data represents information as a grid of pixels.
Vector
Vector data suits discrete features. A point can be a hospital, a line a road and a polygon a land parcel, and each feature can carry attributes.
Raster
Raster data is made of cells, each storing a value. It is commonly used for satellite imagery, DEMs, temperature, rainfall, NDVI and land-cover rasters.
Which to use
Use vector for distinct objects and raster for continuous surfaces or imagery. There are exceptions, so the right choice depends on the dataset and the analysis.
Popular tools
You do not need all of these to start.
| Name | What it is | Good for |
|---|---|---|
| GDAL | Open-source library and command-line tools for geospatial data | Reading, writing and converting GeoTIFF, GeoPackage and shapefile |
| Rasterio | Python library for reading and writing raster data | Working with GeoTIFFs in Python |
| GeoPandas | Python library for working with vector data | Working with vector data in Python |
| QGIS | Free, open-source desktop GIS | Opening and exporting all of these formats |
Glossary
| Term | Meaning |
|---|---|
| GeoTIFF | A TIFF image with geospatial metadata |
| GeoPackage | A single-file geospatial format based on SQLite (.gpkg) |
| Shapefile | A vector format made of several files, including .shp, .shx, .dbf and .prj |
| Vector | Data stored as points, lines and polygons |
| Raster | Data stored as a grid of cells with values |
| GDAL | A widely used library for reading and writing geospatial data |
Test yourself
Try to answer each question before opening the answer.
1. What makes a GeoTIFF different from a plain TIFF?
It contains geospatial metadata, such as location, coordinate reference system, pixel size and extent.
2. Why might you choose a GeoPackage over a shapefile?
It is usually a single file, can hold multiple layers, has a more flexible structure and is increasingly preferred for modern workflows.
3. When should you still use a shapefile?
When a client specifically asks for one, or when you need compatibility with a legacy workflow.
4. Would you store a hospital location as vector or raster?
Vector, as a point. Distinct objects suit vector data, while continuous surfaces suit raster.
5. What file extension does a GeoPackage use?
The extension is .gpkg.
6. Which software supports GeoTIFF?
It is widely supported, including QGIS, ArcGIS, GDAL and Rasterio.
Quick quiz
Pick an answer for each question to see if you got it right.

