Autonomous GIS (AutoGIS): the next-generation AI-powered GIS

Check out our new research proposing Autonomous GIS as the next-generation AI-powered GIS.

Link the full preprint:

Code for LLM-Geo: 

Autonomous GIS: the next-generation AI-powered GIS

Abstract: Large Language Models (LLMs), such as ChatGPT, demonstrate a strong understanding of human natural language and have been explored and applied in various fields, including reasoning, creative writing, code generation, translation, and information retrieval. By adopting LLM as the reasoning core, we introduce Autonomous GIS (AutoGIS) as an AI-powered geographic information system (GIS) that leverages the LLM’s general abilities in natural language understanding, reasoning and coding for addressing spatial problems with automatic spatial data collection, analysis and visualization. We envision that autonomous GIS will need to achieve five autonomous goals including self-generating, self-organizing, self-verifying, self-executing, and self-growing. We developed a prototype system called LLM-Geo using the GPT-4 API in a Python environment, demonstrating what an autonomous GIS looks like and how it delivers expected results without human intervention using two case studies. For both case studies, LLM-Geo returned accurate results, including aggregated numbers, graphs, and maps, significantly reducing manual operation time. Although still lacking several important modules such as logging and code testing, LLM-Geo demonstrates a potential path towards next-generation AI-powered GIS. We advocate for the GIScience community to dedicate more effort to the research and development of autonomous GIS, making spatial analysis easier, faster, and more accessible to a broader audience.

Keywords: Autonomous Agent, GIS, Artificial Intelligence, Spatial Analysis, Large Language Models, ChatGPT


Figure 1. Overall workflow of LLM-Geo

Results automatically generated by LLM-Geo for counting the population living near hazardous wastes. (a) Solution graph, (b) assembly program (Python codes), and (c) returned population count and generated map.

Translate »