In my previous post, I showed how my GIS students were able to adapt to QGIS as a desktop GIS, and also the model building capabilities in QGIS. They had already used ArcGIS Pro to solve a classic GIS lab, as well as using Esri's Model Builder to solve the problem. For our transition to open source, I had them solve the same lab in QGIS. For the last 2 weeks of the semester, I was going to show them how to use Arcpy to solve the same problem. Again, my question was
could a beginning GIS student learn how to effectively use Arcpy to solve GIS problems?
I think this is a very important question. Many professionals I run into worry that learning to write computer code is really difficult, and then never give it a try. So, in thie case, I had my students watch just a couple of videos from my Python for Geospatial course to quickly get up to speed. From there, I set them loose on that familiar lab (that by now they are growing pretty tired of doing!). It was important that they worked on the same lab over and over again, because it gives them a very good perspective on how to solve a GIS problem with ArcGIS Pro, Model Building in ArcGIS, the Model Framework in QGIS, and now Python. Imagine what they will be able to communicate in a job interview when asked what they think of these different technologies.
In my last post, I introduced you to one of my students, and for this post I'll do the same. Zach Yurek is one of our undergraduates, and is just learning how to use GIS. He's taken all our GIS courses, and this semester is taking advanced GIS with me. Zach is not a programmer, and has never programmed before, so all of this is new and intimidating. But, Zach worked really hard, and completed the lab. Below are a few screen shots of the work he did, including Select Layer by Location, including many other functions. Below is a screen shot of some of Zach's code:
Zach was able to complete the lab, issuing command after command. I was really proud of Zach, and how easily he adapted to writing Python code, even as a student with no programming experience.
While Zach worked in the Arcpy console, other students also used IDLE to create a single script. Below is the code from my student, Anthony Cicero:
Here's the best part of this lab: the code that Anthony wrote shows that completing the lab did not take an excessive number of steps. But, when they first created this lab using ArcGIS desktop (and for that matter, QGIS desktop), it took them a long time, having to navigate all the GUI commands. Even Model Builder, while cool, did take a lot of time. Most of the students in our Zoom meeting indicated that they were surprised at how easy it was to write the Python code, and how easy it will be to modify the code to change the criteria.
So, if you are wondering if you can learn a new skill like Arcpy, hopefully, this will give you confidence that it is possible, and also fun to do. If you want to learn how to write Python code for geospatial, check out my course, and similar to my students, you'll be able to create geospatial solutions using Arcpy in just a couple of days.
Finally, take this Arcpy stuff seriously: it is the one way for you develop your GIS skills, and allow you to grow in your career.