3-D Laser Scan of a stream channel
3-D Laser Scan of a stream channel

The colors correspond to elevation.

Landsat 8 Enhanced Vegetation Index animation (Matlab)
Landsat 8 Enhanced Vegetation Index animation (Matlab)
Map of oil wells (QGIS)
Map of oil wells (QGIS)

Map showing distribution of oil wells in Escambia County, FL. The contours show the depth of base of the Floridan Aquifer System. Made for the county Division of Natural Resources. 

Categorized point-cloud (CloudCompare)
Categorized point-cloud (CloudCompare)

The image of natural streambank is made with about 10,000,000 points in space, scanned with a Leica ScanStation terrestrial laser scanner. To distinguish between vegetation and soil points, I trained the CANUPO classifier in CloudCompare.

Simulated streambanks (Matlab)
Simulated streambanks (Matlab)

How much error may be introduced by measuring streambank profiles in slightly different locations? I wrote Matlab scripts to find out. Here, I generated a realistic streambank by a random noise technique known as Perlin noise. Perlin noise simulates the roughness of natural surfaces very well, by relating the frequency and amplitude of generated noise, and by allowing noise to be clumped together (i.e., spatially correlated). High-frequency noise is low amplitude, and low-frequency noise is high amplitude.

All coding and rendering done in Matlab.

Wind flow model vs. Mars reality
Wind flow model vs. Mars reality

I noticed some interesting sand deposits in craters on Mars, and decided to compare their distribution to wind patterns. To model the wind patterns, I created some crater-shaped topography in C, and used CFD software to get flow directions and bed shear stress.

To compare the model to Mars, I inferred wind directions in the crater from mapping the crests of sand dunes, which should be roughly orthogonal to the region wind direction. In this instance, my model suggested that the deposits formed on the downwind side of the crater.

Remotely sensed data time-series (Python/Matlab)
Remotely sensed data time-series (Python/Matlab)

As part of my investigation into the controls of streambank erosion, I wanted to look at the precipitation and vegetation characteristics of the streambanks under study.

The top figure represents the monthly precipitation at each study site, averaged over its drainage basin. The huge peak on the left-hand side is a 100 to 500-year storm event that hit the area on April 30th, 2014.

The bottom figure is a time series of Enhanced Vegetation Index (EVI) at each study location. You can think of it as vegetation greenness. I extracted this data from Landsat 8 products by writing a Matlab script to filter out clouds, interpolate between data points, and calculate a monthly average.

Together, the 2 graphs sum up the seasonal nature of precipitation and vegetation dynamics in the study area. Check out how almost every study site goes through a summer green period followed by a relatively brown/gray winter. With one exception--the site that bucks this trend is overrun by invasive species!

Landform palimpsest, Eglin AFB (QGIS)
Landform palimpsest, Eglin AFB (QGIS)

This is an interesting display. The steep-walled channels are locally called steepheads. They form from groundwater seepage and sapping, and are almost unique to the Florida panhandle. Sapping channels near Apalachicola have been studied extensively due to their similarity to some channels observed on Mars. These are further west, on Eglin Air Force Base. They formed here because the surface sediments are almost pure quartz sand. Speaking of sandy surface sediments...

The channels are superimposed on top of eolian dunes (see the cross-section). These dunes are huge (more technically, "very large"), and they're covered by trees and shrubs! Clearly they're inactive, but how old are they? When did they form? When was this area arid enough to allow such extensive eolian sediment systems to form? Nobody has ever studied them. Maybe someone should try to date them using optically stimulated luminescence? 

3-D Laser Scan of a stream channel
Landsat 8 Enhanced Vegetation Index animation (Matlab)
Map of oil wells (QGIS)
Categorized point-cloud (CloudCompare)
Simulated streambanks (Matlab)
Wind flow model vs. Mars reality
Remotely sensed data time-series (Python/Matlab)
Landform palimpsest, Eglin AFB (QGIS)
3-D Laser Scan of a stream channel

The colors correspond to elevation.

Landsat 8 Enhanced Vegetation Index animation (Matlab)
Map of oil wells (QGIS)

Map showing distribution of oil wells in Escambia County, FL. The contours show the depth of base of the Floridan Aquifer System. Made for the county Division of Natural Resources. 

Categorized point-cloud (CloudCompare)

The image of natural streambank is made with about 10,000,000 points in space, scanned with a Leica ScanStation terrestrial laser scanner. To distinguish between vegetation and soil points, I trained the CANUPO classifier in CloudCompare.

Simulated streambanks (Matlab)

How much error may be introduced by measuring streambank profiles in slightly different locations? I wrote Matlab scripts to find out. Here, I generated a realistic streambank by a random noise technique known as Perlin noise. Perlin noise simulates the roughness of natural surfaces very well, by relating the frequency and amplitude of generated noise, and by allowing noise to be clumped together (i.e., spatially correlated). High-frequency noise is low amplitude, and low-frequency noise is high amplitude.

All coding and rendering done in Matlab.

Wind flow model vs. Mars reality

I noticed some interesting sand deposits in craters on Mars, and decided to compare their distribution to wind patterns. To model the wind patterns, I created some crater-shaped topography in C, and used CFD software to get flow directions and bed shear stress.

To compare the model to Mars, I inferred wind directions in the crater from mapping the crests of sand dunes, which should be roughly orthogonal to the region wind direction. In this instance, my model suggested that the deposits formed on the downwind side of the crater.

Remotely sensed data time-series (Python/Matlab)

As part of my investigation into the controls of streambank erosion, I wanted to look at the precipitation and vegetation characteristics of the streambanks under study.

The top figure represents the monthly precipitation at each study site, averaged over its drainage basin. The huge peak on the left-hand side is a 100 to 500-year storm event that hit the area on April 30th, 2014.

The bottom figure is a time series of Enhanced Vegetation Index (EVI) at each study location. You can think of it as vegetation greenness. I extracted this data from Landsat 8 products by writing a Matlab script to filter out clouds, interpolate between data points, and calculate a monthly average.

Together, the 2 graphs sum up the seasonal nature of precipitation and vegetation dynamics in the study area. Check out how almost every study site goes through a summer green period followed by a relatively brown/gray winter. With one exception--the site that bucks this trend is overrun by invasive species!

Landform palimpsest, Eglin AFB (QGIS)

This is an interesting display. The steep-walled channels are locally called steepheads. They form from groundwater seepage and sapping, and are almost unique to the Florida panhandle. Sapping channels near Apalachicola have been studied extensively due to their similarity to some channels observed on Mars. These are further west, on Eglin Air Force Base. They formed here because the surface sediments are almost pure quartz sand. Speaking of sandy surface sediments...

The channels are superimposed on top of eolian dunes (see the cross-section). These dunes are huge (more technically, "very large"), and they're covered by trees and shrubs! Clearly they're inactive, but how old are they? When did they form? When was this area arid enough to allow such extensive eolian sediment systems to form? Nobody has ever studied them. Maybe someone should try to date them using optically stimulated luminescence? 

show thumbnails