PyDev of the Week: Qiusheng Wu

This week we welcome Qiusheng Wu (@giswqs) as our PyDev of the Week! Qiusheng has developed several Python packages that you can check out on Github. Specifically they are geemap, lidar, whitebox and they are used for advanced geospatial analysis. Qiusheng also has a website where you can learn more about his research and interests.

Let’s take a few moments to get to know Qiusheng better!

Qiusheng Wu

Can you tell us a little about yourself (hobbies, education, etc):

My name is Qiusheng Wu. I obtained my Ph.D. degree in Geography from the University of Cincinnati in 2015. Currently, I am a tenure-track Assistant Professor of Geographic Information Science (GIS) in the Department of Geography at the University of Tennessee, Knoxville (UTK). Prior to joining UTK, I was a tenure-track Assistant Professor in the Department of Geography at Binghamton University, State University of New York (2015-2019).

My research interests include Geographic Information Science (GIS), remote sensing, and environmental modeling. More specifically, I am interested in applying geospatial big data, machine learning, and cloud computing (e.g., Google Earth Engine) to study environmental change, especially surface water and wetland inundation dynamics. I am a strong advocate of open science and reproducible research. I have developed and published various open-source packages for advanced geospatial analysis (e.g., geemap, lidar, whitebox), which are available on GitHub. I recently created a YouTube channel to share video tutorials for using the Earth Engine Python API and geemap Python package. My goal is to make geospatial technologies and GIS programming easier and more accessible. More information about my research and teaching can be found at https://wetlands.io.

In my spare time, I enjoy coding, cooking, and playing badminton.

Why did you start using Python?

I started learning and using Python in summer 2015 when I began my preparation for teaching a GIS programming course at Binghamton University.

What other programming languages do you know and which is your favorite?

I was taught C language and Visual Basic around 2005 when I was an undergraduate student. As a first-generation college student without access to computers or the Internet before attending college, I was fascinated by computer languages and things that can automate repetitive tasks. Over the years, I have taught myself several computer and scripting languages, such as VB.NET, C++, C#, Java, JavaScript, R, Python, and Rust. Eventually, Python stood out and became my favorite language. Since 2015, I have been heavily used Python in my research and teaching.

What projects are you working on now?

My current research focuses on mapping the inundation dynamics of wetlands and surface water using high-resolution remote sensing datasets and Google Earth Engine. To date, I have authored and co-authored 36 peer-reviewed journal articles on GIS, remote sensing, wetlands, and hydrology. More information about my research and publications can be found at https://wetlands.io.

Which Python libraries are your favorite (core or 3rd party)?

My favorite core Python libraries include os, glob, shutil, urllib, json, etc. My favorite 3rd party Python libraries include Jupyter notebook, earthengine-api, ipyleaflet, ipywidgets, bqplot, numpy, scikit-image, matplotlib, grip, bumpversion, flake, etc.

Which one of your Python packages are you most happy with and why?

I am most happy with my geemap Python package. Many people have found it useful and I have received a lot of positive feedback from the Earth Engine community. I enjoy learning from and contributing to the open-source community.

What inspired you to write these Python packages?

I have been deeply inspired by Dr. John Lindsay, who developed the amazing geospatial data analysis platform called whitebox-tools. It is a command-line program with over 430 open-source tools for geoprocessing. The backend of this program was developed using the Rust language. Inspired by Dr. Lindsay’s great work, I built three frontends for whitebox-tools, including whitebox-python, whiteboxR, and whitebox-ArcGIS, which have been widely used by the geospatial community. My recent geemap Python package was inspired by ipyleaflet and ipywidgets packages. My goal is to make interactive mapping with Earth Engine Python API much easier for beginners.

Is there anything else you’d like to say?

I am very grateful to the Python and Linux community! I enjoy learning something new every day through GitHub, Stack Exchange, and Medium. Thank you!

Thanks for doing the interview, Qiusheng!