--
Why I’m Learning Python for Geospatial Analysis and Urban Planning
From Urban Planner to Geospatial Analyst
Cities have always fascinated me. They’re complex, dynamic places where everything—from infrastructure to culture—interacts in ways that shape how people live. I pursued a master’s degree in urban planning with a strong desire to understand these systems and contribute to more sustainable, livable communities. I wanted to dig into the dynamics that make some cities thrive while others struggle.
As I began my career, I realized that my goals and interests were evolving. Urban planning is traditionally a hands-on field, and finding in-person opportunities can be challenging, especially for those, like me, an Iraqi citizen living and working abroad. But there’s one skill that’s increasingly crucial to urban planning in today’s world: geospatial analysis. I’ve always been drawn to the possibilities that technology opens up, and I realized that this would be my way to contribute remotely. I could use data to help cities make informed, evidence-based decisions—no matter where I was.
My journey into geospatial programming began there, but my path took a turn that was as exciting as it was challenging. Instead of going with standard GIS tools, I chose Python programming as my main toolset. The more I learned about it, the more it became clear that Python offered not only flexibility and power but also the chance to deepen my technical skills. I see it as a way to push the boundaries of what geospatial analysis can offer urban planners, and it’s become the foundation of my current and future projects.
Why Python? Moving Beyond Traditional GIS
I still remember the moment I discovered Python’s potential. With just a few lines of code, I could analyze and visualize data, generate maps, and automate workflows in ways that go far beyond traditional GIS tools. Python’s versatility allows urban planners like me to dive into spatial data, develop custom analyses, and build interactive tools that are as engaging as they are informative. It’s a platform that doesn’t just do geospatial analysis—it also invites creativity and adaptability.
I do have access to a capable desktop PC, equipped with an AMD Ryzen 5 5600G processor, 32GB of RAM, and an AMD RX 580 GPU, which allows me to take on more resource-intensive tasks when needed. But, interestingly, I’ve found that starting my work on a much simpler setup has been both challenging and rewarding.
Unlike GIS software, which often requires powerful hardware, Python is incredibly accessible. For me, it’s the perfect solution to combine powerful functionality with my mobile setup. I’m currently working with a tablet, a Redmi Pad SE with 8GB of RAM and 256GB of storage, which might sound like a compromise to some, but it’s given me a unique challenge to explore what’s possible on a minimalist setup. With my tablet, a Bluetooth mouse, and a keyboard, I’ve been able to work from anywhere while learning to maximize every bit of performance out of this setup. My eventual goal is to invest in a laptop and further expand my toolkit, but for now, this setup has forced me to learn Python resourcefully, focusing on tools and techniques that work efficiently on a mobile platform.
Of course, moving from traditional GIS to Python wasn’t without its hurdles. GIS has an intuitive visual interface that makes mapping accessible. Python, on the other hand, has a steeper learning curve. Everything in Python is code-driven, and it took time to adjust to thinking in scripts and functions rather than in windows and buttons. But once I started to see the results—the custom analyses, the streamlined workflows, the maps that I had full control over—I was convinced that Python was a skill worth investing in.
Building a Mobile Geospatial Workspace: Tools That Keep Me Focused
Working from a minimalist setup has its challenges, but with the right tools, I’ve been able to turn it into a powerful workspace. Here’s a look at my core toolkit:
- Google Colab: Colab has been invaluable as a coding environment that I can access from my tablet. It’s cloud-based, which means I don’t need a high-powered machine to work with data and run analyses. Colab does have limitations—it’s not ideal for very large datasets or resource-heavy processing—but as a starting point, it’s been more than enough for my needs. I look forward to eventually working on a more advanced setup, but for now, Colab lets me learn and experiment freely.
- Notion: Organization is key when working with multiple projects and learning a new skill, and Notion is my digital notebook and task manager. I use it to organize everything from project notes and research to tutorials and workflows I want to explore. It helps me stay focused and break down complex projects into manageable steps. Notion also allows me to track my learning progress, which has been invaluable in keeping momentum.
- Medium: I chose Medium to share my journey and learn from others in the field. The geospatial and data analysis communities on Medium are supportive and collaborative, making it an ideal space to publish tutorials, project breakdowns, and personal reflections on my learning process. It’s also a great resource for discovering others’ work and learning from their experiences, so I’m excited to contribute to and grow within this community.
- Upwork: This is where I’m starting to build my freelance portfolio. As a platform for remote work, Upwork connects me with clients who need geospatial analysis but might not have the resources or expertise to do it themselves. Through Upwork, I aim to gain practical experience while building up a portfolio of real-world projects.
My setup isn’t a replacement for a high-end computer or desktop, but for now, it’s been an incredible challenge and motivator. If you’re interested in a similar setup, I’d say the key is keeping it simple, setting clear goals, and focusing on tools that align with those goals. And if you’re starting with a limited budget, there’s a lot you can accomplish with a little creativity and resourcefulness.
Learning and Teaching Along the Way
One of my biggest goals is not only to grow my skills but also to help others do the same. The learning curve in geospatial programming can feel steep, especially for people without a strong technical background, and I want to make that process easier. By sharing tutorials and breaking down my projects, I hope to show others that this field is accessible and exciting, even if you’re working on a budget or just starting out.
In upcoming posts, I plan to dive into the Python libraries and tools that make geospatial analysis possible, and share the details of my own projects. such as an analysis of population density patterns in Austin, Texas. My goal is to create content that’s practical, beginner-friendly, and focused on real-world urban planning issues. I want readers to feel confident about experimenting with data, running analyses, and seeing the possibilities that Python opens up.
What’s Next?
This journey into Python and geospatial analysis is just beginning, and I’m excited to see where it leads. My focus right now is on building foundational skills and sharing what I learn along the way, whether it’s insights into data visualization, breakdowns of specific analyses, or practical advice for managing a mobile workspace.
I’m looking forward to exploring new tools and tackling projects that will challenge my skills, from more complex spatial analyses to custom data visualizations. Each project will be a chance to push my limits, and I hope to bring readers along for the ride. If you’re curious to see what’s possible with Python and want to explore the world of urban data analysis, follow me here on Medium as I learn, experiment, and share every step of the process.