Thesis map maker: publication-ready dissertation maps in Python

A thesis map maker gives you the study-area, methods and data maps a dissertation needs at print resolution and reproducibly, without ever opening desktop GIS. AcadGIS is a free, open-source Python package that turns a country name and a few lines of code into a journal-ready figure.

What a thesis map maker is and why researchers need one

A thesis map maker is a tool that generates the maps a dissertation actually requires — a study-area locator, a methods or sampling map, and one or more data maps — at the resolution and consistency a printed thesis or a journal submission demands. The problem it solves is real: assembling these in QGIS or ArcGIS means hours of clicking, manual styling, and figures that are hard to reproduce when a supervisor asks for one more edit.

AcadGIS replaces that workflow with short Python scripts. Because every figure is code, it is reproducible — re-running the script regenerates the identical map, which is exactly what committees and reviewers want. Boundaries come from authoritative sources, cartographic elements are added automatically, and export happens at any DPI. It pairs naturally with a dedicated study area map generator for the locator figure that opens most methods chapters.

Make one in Python

The core of a thesis map is the study-area locator: your site shown in the context of its region and country. AcadGIS builds this as a cascade — country to division to district — with connector lines and clean styling, in a handful of lines. Swap in your own country and administrative names and the boundaries download automatically from GADM.

The snippet below produces a three-panel cascade figure with terrain and rivers, ready to save at print resolution. For choropleths and thematic data maps, see the choropleth map generator.

import acadgis as agis
fig = agis.study_area(
    "Bangladesh",
    steps=[("division", "Dhaka"), ("district", "Madaripur")],
    template="cascade", terrain=True, rivers=True, labels=True,
)
agis.save("study_area.png", dpi=300)
Study-area locator map: Bangladesh to Dhaka to Madaripur, fully customized
A fully customized study-area locator cascading from Bangladesh to Dhaka to Madaripur.

The three maps most dissertations need

Most theses converge on the same small set of figures, and AcadGIS covers each one:

  • Study-area locator — where the research took place, nested inside its region and country, with a north arrow, scale bar and graticule. Use StudyArea().zoom_into().figure() or study_area().
  • Methods / sampling map — field sites, transects or survey points plotted over the study area with points(ax, data), sized or coloured by a variable.
  • Data / results map — a choropleth, heatmap or interpolated field showing your findings, via choropleth(), add_heatmap() or interpolate_field().

All three share the same clean academic theme, so your dissertation's figures look like a coherent set rather than three tools bolted together. For a broader treatment of figures aimed at manuscripts, see making a GIS map for a research paper.

Plotting your own field sites

A methods chapter usually needs your sampling points on top of the study area. Load the boundary, plot it as a base, then overlay your coordinates from a DataFrame or CSV. Points can be sized or coloured by a measured value so the map doubles as a first look at your data.

import acadgis as agis
gdf = agis.load_boundaries("Bangladesh", level="district", within="Dhaka")
ax = agis.plot(gdf, title="Sampling sites", scale_bar=True, north_arrow=True)
sites = agis.pd.read_csv("sites.csv")
agis.points(ax, sites, lon="lon", lat="lat", value="yield", size_by="n")
agis.save("methods_map.png", dpi=300)

Print resolution and reproducibility

University thesis guidelines and journals almost always ask for 300 DPI raster figures or, better, vector line art. AcadGIS exports at any DPI with agis.save("fig.png", dpi=300) and can write PDF and SVG for lossless printing — so text and boundaries stay crisp at A4 or when a figure is scaled up for a poster.

Reproducibility is the quieter benefit. Keep your map scripts in the same repository as your analysis, and every figure in the dissertation can be regenerated from raw data on demand. When a reviewer asks for a corrected boundary or an added site, you edit one line and re-run — no clicking through a desktop project trying to remember what you did six months ago.

USA states poster map, fully customized
A fully customized USA states figure exported at poster scale.

Data sources

AcadGIS draws on established open datasets so your maps are defensible in a viva or peer review:

  • GADM and Natural Earth — administrative boundaries from country down to sub-district.
  • Copernicus GLO-30 — 30 m elevation for terrain and hillshade via add_topography() and relief().
  • ESA WorldCover — 10 m land cover through add_landcover().
  • Sentinel-2 — live imagery and NDVI with add_satellite() and add_ndvi().
  • OpenStreetMap — roads and rivers via add_roads() and add_rivers().

Bangladesh, Iraq, India and the USA ship bundled and work fully offline; any other country downloads by name the first time you request it.

Fully customized study-area figure with connectors and terrain
A fully customized study-area figure with connectors and terrain.

How to make a thesis study-area map with AcadGIS

  1. Install AcadGIS. Run pip install acadgis. The package works with a single import and needs no desktop GIS software.
  2. Load your study area. Use load_boundaries() or StudyArea() to pull your country, region and district from GADM and Natural Earth.
  3. Build the locator figure. Call study_area() or StudyArea().zoom_into().figure() to cascade from country down to your site with connectors.
  4. Add context layers. Layer terrain, rivers, land cover or your own sample points with add_topography(), add_rivers() or points().
  5. Export at print resolution. Save the figure with agis.save("study_area.png", dpi=300), or export PDF/SVG for lossless vector printing.

Frequently asked questions

What is a thesis map maker?

A thesis map maker is a tool that produces the study-area, methods and data maps a dissertation needs at print resolution and in a reproducible way. AcadGIS is a free, open-source Python package that does this in a few lines of code without desktop GIS like QGIS or ArcGIS.

Can I make dissertation maps without QGIS or ArcGIS?

Yes. AcadGIS builds publication-ready thesis maps entirely from Python with a single import, so you never open a desktop GIS. It downloads boundaries, styles the figure, and adds a north arrow, scale bar and graticule automatically.

What resolution should thesis maps be for printing?

Most universities and journals require 300 DPI or higher for raster figures, and vector (PDF or SVG) for line art. AcadGIS exports at any DPI with agis.save("fig.png", dpi=300) and can also write PDF and SVG for lossless printing.

Where do the boundaries for the study-area map come from?

AcadGIS pulls administrative boundaries from GADM and Natural Earth, so your country, state, district and sub-district outlines are authoritative and consistently projected. Bangladesh, Iraq, India and the USA ship bundled and work offline; other countries download by name.

How do I make the maps reproducible for my committee?

Because every AcadGIS map is generated from a short, version-controllable Python script rather than manual clicks, re-running the script regenerates the exact same figure. This means a corrected dataset or a reviewer's request only takes a re-run, not a rebuild.

Can a thesis map maker add terrain, rivers and satellite imagery?

Yes. AcadGIS layers Copernicus GLO-30 terrain, Natural Earth and OpenStreetMap rivers, ESA WorldCover land cover and live Sentinel-2 imagery onto your study area. You add each as one function call such as add_topography(ax) or add_rivers(ax).

Is AcadGIS free for students?

Yes. AcadGIS is free and open-source under the Apache-2.0 licence, installable with pip install acadgis. There are no seat limits, watermarks or export restrictions, which suits students and departments on any budget.