This is an ongoing post with my thoughts on how AI is changing how we learn and how to keep your skills relevant.

Andrej Karpathy, a widely respected AI researcher and educator, said something very insightful and offers a useful mental model.

“You can outsource your thinking, but you can’t outsource your understanding.”

AI Tools are accelerating how we build software. For data scientists, it means we can easily build scripts, notebooks, plugins and data pipelines for analysis. Here are some of my thoughts on what this means for you.

Continue reading

Historically, the open-source spatial analysis workflows lived in different silos

  • Python: You use Pandas, GeoPandas, and Jupyter Notebooks.
  • SQL: You use SQL with PostGIS.

If you lived in the Python ecosystem, you rarely have to switch to SQL for analysis and vice versa. Many people, including me, had little motivation to sharpen their SQL skills when you could get away with doing things in Python. Many of our students who wanted to learn SQL, found themselves choosing between these two stacks and found SQL had a much higher friction to get started.

Recently, I have been using DuckDB and find that it is the perfect bridge between these two ecosystems. DuckDB + Python + LLMs provide the easiest and most rewarding pathway for Python users to learn and incorporate SQL in their workflows.

In this post, we will cover the following topics

  • What is DuckDB?
  • Using DuckDB to learn SQL with the help of LLMs
  • Example Workflow with LLMs
    • Querying and Loading Administrative Boundaries from GeoBoundaries
  • Advanced Workflows
    • Extracting Overture Maps Data
    • Extracting Farm Boundaries from Global Fields of The World (FTW)

Open our companion notebook learning_sql_duckdb.ipynb in Google Colab to follow along and run the queries yourself.

Continue reading

I started Spatial Thoughts in 2020 as an online training academy. We have been hosting cohort-based training courses ever since and the business has steadily grown over the years. As with many small businesses, most of our data is scattered across spreadsheets, emails, and different SaaS platforms. As the number of training participants grew, I found it increasingly hard to find the data I needed to make decisions. For example, I frequently would go down a rabbit hole to answer questions like,

  • Which of our participants received scholarships for a course but haven’t yet completed the certification?
  • Can I get a list of our QGIS-certified participants from Germany?
  • Do we know anyone who is skilled in both Earth Engine and Python and lives in Australia?
  • We are launching a new course and want to reach out to everyone who has completed our intermediate Python courses. Can we get their emails?

These were really difficult to answer and involved manual searches and digging through various spreadsheets. I had always dreamt of having a unified database that I could query and find an answer. This type of database – also known as a Customer Relationship Management (CRM) – is something out of reach for small businesses like mine. The costs and time involved for building something custom and tailored to my needs were never justified. But things have changed rapidly in the past few months. With AI-coding tools – like Claude Code – building systems like these is no longer out of reach. I spent a lazy afternoon with Claude Code and built exactly what I needed. Everything from data extraction to building a private web app. I was blown away by the capabilities of modern AI tools and want to share the process here.

Continue reading

Google recently announced Earth Engine Noncommercial Tiers for Google Earth Engine. This is a big change that affects all the non-commercial users of the GEE platform. Before the change, if you qualified for non-commercial use, you could use Earth Engine without any restrictions or fees. With the introduction of non-commercial tiers, you now have monthly limits on how much compute you can use for free. Once you exceed the allocated monthly quota, your account will enter a Restricted mode that will slow down the computations triggered through your account.

See our updated Sign-up for Google Earth Engine page with guidance on how to select your quota tier.

If you are a non-commercial user of Earth Engine, you now need to monitor and manage your quota usage to ensure you comply with these limits. This post outlines the concepts and tools you can use for quota monitoring.

The post covers the following topics:

  • Understanding Earth Engine Compute Unit (EECU)
  • Monitoring Quota using Google Cloud Console
  • Monitoring Quota using Python (using Google Colab)
Continue reading

The FOSS4G Asia 2026 conference was hosted at Nashik, India from 21-25 January 2026. This was a special event for me because I was part of the local organizing committee and worked alongside a passionate group of people to bring the open-source geospatial community together in India. The conference also co-hosted the State of the Map (SOTM) India 2026 gathering for the OpenStreetMap India community. In total, the event brought together 160+ attendees from India, Japan, Germany, Thailand, UK, UAE, Nepal, and Korea.

Conference Group Photo
Continue reading

QGIS comes bundled with a simplified version of the Natural Earth Countries shapefile that is suitable for quick map-making. The layer can be loaded into your canvas by typing the keyword world in the coordinates bar.

While this is useful, there is no single political map of the world that is accepted by every country of the world. There are many disputed international boundaries, and each country has its own version of accepted international boundaries. To allow mapmakers to adhere to local mapping regulations, Natural Earth also publishes Countries point-of-views shapefiles for many countries that depict the world map according to each country’s law and/or local conventions. We provide a simple script to replace the bundled world map with your country’s point-of-view layer.

Continue reading

Geo for Good is Google’s annual conference focused on their geospatial and cloud offerings. The 2025 edition of the summit was hosted at both New York and Singapore. I was glad to take part in the Geo for Good 2025 Summit at Singapore that took place from Sept 8-11, 2025 at the Google Singapore office. The summit provided an excellent opportunity to learn about the latest advancements in Google’s geospatial tools and to build new professional connections.

The Conference

As Earth Engine gets more integrated with Google’s Cloud offerings, the focus of the conference has also shifted to interoperability and integration with other cloud services. Google has also invested a lot of resources into their AI offerings – particularly with the new Satellite Embedding dataset and it was at the center stage throughout the conference.

Geo for Good Singapore Summit Participants (Photo by Google)

I saw the following main themes in this year’s conference:

  • Theme 1: Interoperability
  • Theme 2: AI and Satellite Embedding Dataset

All the presentations shared during the summit are available on the Summit website and are linked from the ‘Resources’ section under the description of each session. While many of the sessions were recorded, they do not plan to release them to the public.

Continue reading

In this post, you will learn how to work with the Open Buildings 2.5D Temporal data and download it for many useful downstream applications, such as Visibility Analysis, Population Modeling, and 3D Visualization.

Google has two important large-scale AI-derived open building datasets:

  • Open Buildings V3 Polygons: This was released a few years ago and contains all buildings polygons detected from Google’s corpus of high-resolution imagery. You can read more about it in our post Mapping Building Density with Open Building Datasets.
  • Open Buildings 2.5D Temporal V1: This is a newer dataset that aims to extract useful attributes for buildings such as year of construction and building height. Since this data is derived from open-source medium-resolution Sentinel-2 imagery, it has temporal coverage from 2016-2023. A deep learning model was trained to predict building heights from Sentinel-2 images, so we also get the height information each year.

We will cover a Google Earth Engine workflow to process this data to make it usable in a GIS environment and extract a high-resolution Digital Surface Model (DSM). We will also see how to combine the Open Buildings V3 polygon building footprints with the Open Buildings 2.5D Temporal V1 data to create and extract yearly polygon datasets containing building heights that can be used in a GIS environment.

Open Buildings 2.5D Temporal Data Combined with Open Buildings V3 Polygons and Visualized in QGS

The post is divided into the following sections.

  • Part 1: Extracting Building Height Raster and High-Resolution DSM
  • Part 2: Extracting Building Footprints with Heights
Continue reading