Tangible Landscape is an tangible graphical interface that couples a physical model with a digital model of a landscape so users can feel, interact and reshape the landscape (http://tangible-landscape.github.io/). Some of my recent work has focused on developing a Tangible Landscape activity for exploring different runoff mitigation strategies on an farm. Users can place vegetated swales, build berms and dry retention ponds and modify how fertilizer is applied then watch the where water would carry the fertilizer during a heavy rainstorm. Stay tuned for some related pictures, videos and, eventually, publications!
I’m working with Vaclav Petras and Helena Mitasova to continue developing grass.jupyter
, a subpackage for GRASS GIS that provides visualization functions for view GRASS data in Jupyter Notebooks. The project began with Google Summer of Code 2021 and continues with a GRASS Mini Project Grant during January-March 2022.
Check out the news post on the GRASS GIS site
See GRASS GIS and grass.jupyter on GitHub
View example notebook for basic grass.jupyter usage
View example notebook for interactive GRASS maps
View poster from the NC State College of Natural Resources’ Graduate Student Symposium
I continued working on GRASS GIS through Google Summer of Code 2021. My project focused on improving the interation of GRASS GIS and Jupyter Notebooks. I created a new subpackage for GRASS GIS called grass.jupyter
that includes functions for simplifying the launch of GRASS GIS in Jupyter Notebooks and two different classes that help users display GRASS data in Jupyter Notebooks. One of them, InteractiveMaps
, allows users to easily create interactive maps with folium
, a leaflet library for Python. I learned a lot about Python and GRASS coding conventions!
Try GSoC version of grass.jupyter in Binder
I recently wrote my first GRASS GIS add-on module, call r.centroids! Given a map(raster) with clumps of same-valued pixels such as a watershed map, r.centroids will return the center point of each area. This isn’t a novel GRASS GIS capability; a centroid function is nested in the r.volume module but, it’s inconvenient (not to mention a little counterintuitive) to find and use r.volume for centroids. So, a created a wrapper module for r.volume that just returns the centroids. It might be simple but it’s an exciting first Open-Source software contribution! Check out the man pages here.
While at the Cold Regions Research and Engineering Laboratory (CRREL) in Hanover, NH, I worked with Dr. Daniel J. Breton to develop a system for mapping radiofrequency noise in urban environments. Radiofrequency noise consists of unintentionally-emitted, incoherent electromagnetic waves. This noise comes from many different sources, some natural (such as the sun and lightning) and others man-made (LED bulbs, electronic devices, damaged or poorly insulated electral wires to name a few). When the noise is powerful enough, it can interfere with sensitive electromagnetic devices and radio communications. Previously, most radiofrequency noise measurements were made with stationary setups such as a large van that could be driven to a neighborhood and parked to take measurements over the course of a day. Dr. Breton and I developed a novel, backpack-based system that can be walked through the urban environment where radiofrequency noise is often most powerful. The system successfully showed there is significant variability in noise power on the scale of several blocks. For more about this project, check out my publications page or this AGU blogpost on our measurement campaigns in Boston, MA.
At CRREL’s Radio Science group, we also study the bistatic scattering properties of buildings and mountains to better understand the influence of the environment on the the radio channel (the many paths the signal travels between the transmitter and reciever). We developed a channel sounding system that could characterize the channel at frequencies commonly used for radio communication in the ultrahigh frequencies. A channel sounder consists of two stations - a reciever and a transmitter - that are deployed to a particular environment of interest. The transmitter sends a known pseudorandom noise sequence out into the environment. The reciever cross-correlates the recieved signal with the original pseudorandom noise sequence to see how the channel has distorted the signal. For more information, check out my publications page.