Ujaval Gandhi

2.6K posts

Ujaval Gandhi banner
Ujaval Gandhi

Ujaval Gandhi

@spatialthoughts

Educator | Founder @ Spatial Thoughts | Helping people learn and master geospatial tech - #QGIS, #Python, #GDAL, #EarthEngine | Ex-Google

Katılım Mayıs 2010
436 Takip Edilen16.5K Takipçiler
Sabitlenmiş Tweet
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Thank you to Atlas for selecting me as one of the recipients of the Spatial Impact Award 2025 for "..commitment to making quality geospatial education accessible regardless of economic circumstances has helped democratize GIS skills globally.." atlas.co/spatial-impact…
Ujaval Gandhi tweet media
English
5
7
88
4.2K
Postholer - GIS Resources
Creating multi-layer images with GDAL CLI pipeline, using various nested raster/vector pipelines. Data: ETOPO_2022 1KM resolution bathymetry/elevation, NaturalEarth and personal trail vector data. @GdalOrg @gdaltips #gis #bash
Postholer - GIS Resources tweet mediaPostholer - GIS Resources tweet mediaPostholer - GIS Resources tweet media
English
1
0
5
288
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
A web based GIS you didn’t know you wanted. Everything one could dream of - as a simple fast static web page. Unbelievable amount of work put in by @giswqs ! It’s already my preferred data viewer for daily workflows.
Qiusheng Wu@giswqs

GeoLibre v1.4.0 is here! GeoLibre is a free and open-source, lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs everywhere you do, in the web browser, on the desktop, on mobile, and inside Jupyter notebooks, all while keeping your data local and private. This release brings field data collection, image georeferencing, and a full Jupyter notebook experience right next to the map. What's new in v1.4.0 - Jupyter beside the map: Run notebooks alongside your map (JupyterLite in the browser, JupyterLab on the desktop). - Field data collection: Capture point observations in the field with custom, configurable forms. - Georeferencer: Pin a scanned map or image to the map using ground control points. - Spectral Index toolbox: Compute NDVI, NDWI, EVI, and more directly from your rasters. - Better internationalization: Correct rendering of right-to-left basemap labels (Arabic, Hebrew). - More reliable data handling: Render GeoPackages without GDAL's WASM thread crash. Try it out - Live demo: viewer.geolibre.app - GitHub: github.com/opengeos/GeoLi… - Documentation: geolibre.app - Release notes: github.com/opengeos/GeoLi… #GIS #GeospatialData #OpenSource #RemoteSensing #DataVisualization #MapLibre #Python

English
1
24
145
12.7K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Took a long time, but finally glad to launch our first workshop on Git. Learn Git, GitHub, and Web Development from the very basics and build your online portfolio website. The full workshop with videos is now available on Spatial Thoughts OpenCourseWare courses.spatialthoughts.com/geospatial-por…
Ujaval Gandhi tweet media
English
0
17
69
2.2K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Registration is open for our "Introduction to QGIS" class with official QGIS certification. Join our live online instructor-led class to get a structured introduction to the world's most popular open-source GIS. Register at ➡️ spatialthoughts.com/events/introdu…
Ujaval Gandhi tweet mediaUjaval Gandhi tweet media
English
1
7
27
1.6K
Aman
Aman@aman_bagrecha·
Oh my! Was casually updating my website and this guy fabel was able to find (I did not ask) malware on my machine which consumed all of my CPU!
Aman tweet media
English
1
0
2
722
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
“You can outsource your thinking, but you can’t outsource your understanding.” This quote by Andrej Karpathy perfectly summarizes how I feel we should use AI. As we all grapple with the new reality, I found it useful to write down my thoughts spatialthoughts.com/2026/05/12/ref…
English
0
3
28
1.1K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Launching our new workshop to teach the basics of Git, GitHub, and Web Development for complete beginners. Join the instructor-led online session where you will build your portfolio website guided by experts alongside a global group of peers. Sign up at ➡️spatialthoughts.com/events/geospat…
English
0
10
65
2.6K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
@postholer Of course, there are many ways to skin the cat and GDAL is one of my favourites. My point was that Python+DuckDb+LLMs provide one of the least intimidating and rewarding paths for learning SQL for beginners.
English
0
0
0
53
Malay Krishna
Malay Krishna@Malay4Product·
Let me explain what just happened today because it deserves so much recognition. GalaxEye is a Bengaluru startup founded in 2021 by IIT Madras engineers. Today they launched Mission Drishti on a SpaceX Falcon 9. It is India's largest privately built satellite at 190 kg. And it carries a technology that no commercial satellite has ever carried before. Normal satellites take photos of the Earth using optical cameras. Like your phone camera, but from 500 km up. The problem is obvious. Clouds. Night. Fog. Smoke. If any of these are in the way, the photo is useless. India has monsoon cover for 4 months a year. That is 4 months where optical satellites are partially or fully blind over large parts of the country. The alternative is SAR. Synthetic Aperture Radar. Instead of taking photos with light, it sends radar waves down and reads what bounces back. Radar goes through clouds, through darkness, through smoke. A SAR satellite can image a flooded village at 2 AM during a cyclone when no optical satellite can see anything. The problem with SAR is that the images look nothing like photos. They look like grainy black-and-white radar maps. A military analyst or a trained geospatial engineer can read them. A farmer, a disaster response team, or a city planner cannot. Until today, if you wanted both optical and SAR data for the same location, you needed two different satellites, passing over at different times, at different angles. Then someone had to manually align and fuse the two datasets. Expensive, slow, and the data never perfectly matched because the satellites saw the same spot minutes or hours apart. GalaxEye put both sensors on one satellite. Optical and SAR, fused into what they call OptoSAR. Three times more information than a single sensor. Processed onboard by an NVIDIA AI chip at 1.8 metre resolution. Now in practice, during the next cyclone hitting Odisha, one satellite pass gives you a clear image of which villages are flooded, which roads are cut, and which buildings are standing. Day or night. Cloud or clear. In near real-time. For defence, it means you can monitor a border area 24/7 regardless of weather. For agriculture, it means tracking crop health across an entire monsoon season without a single cloud gap. For infrastructure, it means monitoring construction progress on highways and bridges without waiting for a clear day. GalaxEye tested their SAR tech on ISRO's POEM orbital platform. The satellite was tested at ISRO facilities. IN-SPACe provided regulatory clearance. NSIL, ISRO's commercial arm, will distribute the imagery globally. And it launched on SpaceX because ISRO's PSLV doesn't have the right orbit slot for this mission. Yes, four IIT Madras graduates built a world-first satellite in 4 years in Bengaluru. Take a bow!
Tejasvi Surya@Tejasvi_Surya

A Bengaluru startup just did something no one in the world has ever done, put a satellite in orbit that sees through clouds, through the night, with optical sensor and SAR fused into one. Many many congratulations to the @Galaxeye team on the launch of Mission Drishti! This is exactly why PM Sri @narendramodi opened up the space sector, so young Indians could build an audacious future for the nation.

English
117
2.4K
10.1K
515.9K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
I installed Clicky and tried it with QGIS. I think this is one of the best 'AI' integrations I have seen that will genuinely improve the learning experience. See my video demo of a real geospatial use case. youtube.com/watch?v=9w3wzv…
YouTube video
YouTube
Farza 🇵🇰🇺🇸@FarzaTV

I built this thing called Clicky. It's an AI teacher that lives as a buddy next to your cursor. It can see your screen, talk to you, and even point at stuff, kinda like having a real teacher next to you. I've been using it the past few days to learn Davinci Resolve, 10/10.

English
2
13
90
10.7K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
We offer one of the most affordable QGIS certification programs globally. If you are looking to upskill yourself and earn official QGIS certification, join our upcoming cohort of the Advanced QGIS course starting on 23 April. Details at spatialthoughts.com/events/advance…
Ujaval Gandhi tweet mediaUjaval Gandhi tweet media
English
0
4
23
2K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Wanted a teaching aid to explain the RTree spatial index to my class, so vibe-coded an interactive app to visualize and explain the concepts using shapely's STRtree implementation. spatialthoughts.github.io/mini-apps/spat…
Ujaval Gandhi tweet media
English
2
17
106
5.1K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
New Tutorial: Working with the newly released Google Groundsource flood archive data derived from news articles spanning 25 years and containing over 2.6 million records. Learn how to efficiently work with this data using #Python youtube.com/watch?v=lJHKkL…
YouTube video
YouTube
English
1
23
122
8K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
@chaitherapyamit Paid version (Pro plan). Totally worth it. Workflow is documented in detailed in the post linked above.
English
0
0
1
72
Amit
Amit@chaitherapyamit·
@spatialthoughts Great sir. Did you use the free version or the paid one. Also, if possible do share a walkthrough of your prompts
English
1
0
0
102
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
I built a tool for my small business that would have been unthinkable just a few months ago. Claude Code handled data wrangling like a Pro and built a useful internal tool that helps me run my training academy better. Read more spatialthoughts.com/2026/03/20/tra…
English
2
4
43
2.2K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
@youwillmakemaps Absolutely amazing. Tried it with the map we use for our Introduction to QGIS class. The UI is surprisingly usable and intuitive. Love the design aesthetic as well!
Ujaval Gandhi tweet media
English
1
1
3
277
Evan Applegate
Evan Applegate@youwillmakemaps·
Here's a copy/paste prompt recipe and vid showing exactly how to ask an LLM for an interactive map with satellite/map layers + a georeferencer that lets you see how old maps correspond with modern geography. Today the computer can’t make good print maps (that's your hill to climb youshouldmakemaps.com ) but it can, with five bucks and twenty minutes, make good interactive maps. No software/GIS knowledge necessary, you just need a few nouns and an LLM. Scroll to the bottom for the repo/live map if you want those. I'm using Claude Code as an extension in VS Code but you can use the Claude CLI, Cursor, whatever. 1) Let's grab an old cadastral map and see who owned big tracts of a city; I found this an 1854 map of Niagara Falls, NY I found in the Library of Congress: loc.gov/resource/g3804… , grabbed the .jp2, saved as a jpg from photoshop. 2) Let's ask Claude Code for a map. You can see exactly what I did in the video but my prompt, sans simple "hey it's busted" debugging, is written out in the following paragraphs. I explain the map-specific nouns in brackets. You can likely dump this whole thing in your LLM window and it'll work; I'd try plan mode + skip permissions. THE PROMPT Make an interactive map with MapLibre GL JS [maplibre is a javascript mapping library, a FOSS version of Mapbox GL JS. This lets us display tiled map data and arbitrary images on the map] Add basemap toggles with Esri satellite, Carto Positron, and OSM [these map layers require no API keys for light usage; Carto Positron is a nice road map layer and OSM is ugly but comprehensive] Add a globe/mercator projection toggle [I think the globe looks better at low zooms] Add a layer panel on the left with visibility checkboxes and delete buttons. Add a search box on the map that flies to results, with deletable pin markers [Makes this easy to get to your area of interest] Include an interactive local georeferencer: drop a JPG, pick ground control points on a zoomable/pannable image viewer, place them on the map, watch it warp with a progress bar centered on the map. [The georeferencer uses math ("affine transform"??) to match points on the old map to points on the new map; generally you click road intersections on the old map, match them on the new map, repeat a dozen times and everything aligns] The georeferenced map overlay defaults to 25% opacity with a slider above the control point list. [I want it easy to see the underlying modern geography] Add Export/import control point buttons [this saves the control points as a JSON so you can save and reimport your work] Add a button to export the warped image as a GeoTIFF with a .prj [In case you want to add the georeferenced image to a real GIS program like QGIS] Look up all relevant docs before starting [Claude sometimes uses outdated stuff] Split everything into separate HTML/CSS/JS files [Claude tends to pile everything in index.html, which is hard to read] Use Optima font, base color #FEFAF6 [I just like this style] Let me test with a local server [it serves it on a simple server so you can nav your host to localhost:8000 and try it out] Log all errors [so you don't have to play telephone with the LLM describing what's busted] 3) Once your LLM finishes, test it out in your browser; if it doesn't work, ask the LLM to check logs. Repeat 'til functional. 4) After this works on your computer, you can show it to everyone by hosting it on GitHub: prompt with "write a README explaining what everything does, add it to a new GitHub repo, deploy using GitHub pages, gimme the live URL" Here's what Claude made for me, try it yourself: evanapplegate.github.io/simple-georefe… • Upload the JPG in the repo, which is linked below • "Add GCP" • Click somewhere recognizable on the old map, like the tip of an island or a road intersection • Click the matching point on the new map • Repeat til you have least 3x points • Hit "georeference" • You'll see the old map atop the new map; if you want a better fit, delete bad points or add a dozen new ones, hit georeference again, repeat Repo: github.com/evanapplegate/… Is this map robust? Human-maintainable? Elegant? Performant? Secure? No, but *your* personal web map need not be. It just needs to work for *your* narrow use case, because it’s *your* map. x.com/_austin_cassid…
Austin Cassidy@_austin_cassidy

@youwillmakemaps Would love to see know the process of how to do this

English
2
6
58
15.7K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
Registration for the upcoming cohort of the Python Foundation for Spatial Analysis Course by Spatial Thoughts is now open. This will be a paid instructor-led live online class suitable for beginners. View schedule and register at spatialthoughts.com/events/python-…
English
0
0
14
914
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
If you have a bunch of local rasters and you need to process them efficiently, XArray is a great solution. New tutorial on extracting yearly NDVI/EVI time-series from downloaded MODIS files ➡️ youtube.com/watch?v=UZlF8i…
YouTube video
YouTube
English
0
7
40
3.2K
Ujaval Gandhi
Ujaval Gandhi@spatialthoughts·
@RamSeraph Awesome. Thanks for your amazing contribution in making Indian geospatial data accessible.
English
0
0
1
280
Sreeram Kandimalla
Sreeram Kandimalla@RamSeraph·
Made it to @spatialthoughts bookmarks :). Anyway, this one is based on your blog.. google buildings 2023 dataset augmented with heights - #source=/google-buildings/&map=4/22.5/76.5&terrain=false&base=Carto+OSM+Dark" target="_blank" rel="nofollow noopener">indianopenmaps.com/viewer#source=…
Ujaval Gandhi@spatialthoughts

Claude Code helped me with a long-overdue personal project to organize my bookmarks into a searchable site. It fetched info, organized it and made a nice Mkdocs website and push it on Github! Couldn't have imagined it possible just a few months ago! spatialthoughts.github.io/notes/

English
2
0
2
858