GDAL is a translator library for raster and vector geospatial data formats. There are API documentation for C and C++. There are Node.js bindings and Python bindings and a Python cookbook.

There are several great tools for the command line and API’s that you can use to wrangle your geodata. The example that we will be discussing is raster GeoTIFFs from the US Forest Service FSTopo Raster Gateway.


You can use gdal-config to obtain the GDAL version

gdal-config --version

or you can list the supported formats in your GDAL installation

gdal-config --formats

Learning with Mt Whitney

Since we are working straight from the command line, we can start by calling commands to fetch to our GeoTIFFs. We have examples for wget and curl. You can use the FSTopo Raster Gateway if you prefer, but you can also start with the page that shows FSTopos near Mt Whitney.


# or

curl -O


With gdalinfo you can obtain great metadata about your file

gdalinfo 363011815_Mount_Whitney_FSTopo.tif

# output gdalinfo in json
gdalinfo -json 363011815_Mount_Whitney_FSTopo.tif

# histogram of palette colors
gdalinfo -hist 363011815_Mount_Whitney_FSTopo.tif


Translating our GeoTIFF to other formats is useful, so we can use gdal_translate to perform operations. One caveat is that when you translate out of GeoTIFF, then you lose all geospatial information.

gdal_translate -of PNG 363011815_Mount_Whitney_FSTopo.tif 363011815_Mount_Whitney_FSTopo.png

# or translate to JPEG
gdal_translate -of JPEG 363011815_Mount_Whitney_FSTopo.tif 363011815_Mount_Whitney_FSTopo.jpg
gdal_translate -of JPEG -expand rgb 363011815_Mount_Whitney_FSTopo.tif 363011815_Mount_Whitney_FSTopo.jpg

# or translate to WEBP
gdal_translate -of WEBP -expand rgb 363011815_Mount_Whitney_FSTopo.tif 363011815_Mount_Whitney_FSTopo.webp

# or translate to uncompressed TIFF
gdal_translate -of GTIFF -expand rgb 363011815_Mount_Whitney_FSTopo.tif 363011815_Mount_Whitney_FSTopo.TIFF


Links to other awesome stuff