Tuesday, May 15, 2018

Specialization certificate for the assessment and management of geological and climate related risk (CERG-C) course in Geneva and Vulcano Island

I just returned from my second year of participation in the Specialization certificate for the assessment and management of geological and climate related risk (CERG-C) course in Geneva (Switzerland) and Vulcano Island (Sicily, Italy). It was stimulating, interesting, and beautiful. The course takes a "...multidisciplinary approach to the assessment and management of risk from natural hazards, merging ideas from disciplines such as the physical and social sciences, engineering, and economics" (website). The course has 8 modules and there were about 25 students from around the world participating. The course is lead by Professor Costanza Bonnadonna. Several other instructors participate and getting to know them has been quite nice. Amanda Clarke and I have joined the last few years

It is a tough place to work: view from La Fossa towards Vulcanello across the Vulcano town with Lipari and other Aeolian Islands behind

The last two years I have helped by providing a series of lectures in Geneva on topography and then participated in the field exercise on Vulcano Island (Sicily, Italy). I argue that it is a fundamental geophysical dataset for any hazard and risk assessment as it drives and resists processes and hazards. After all, potential energy = mass x gravity x relative height. Topography fits in the realm of Geodesy which is the science of accurately measuring and understanding three fundamental properties of the Earth: its geometric shape, its orientation in space, and its gravity field—as well as the changes of these properties with time. We know that surface processes act to change elevation through erosion and deposition while tectonic processes depress or elevate the surface directly. And, topography and geomorphology (study of landforms and surface processes) helps to link between timescales of seismology and crustal deformation (1-10 yr) and geology and tectonics (1-10 Myr)

Vulcano and topography and bathymetry of northern Sicily. Note that I demonstrate the very useful geomapapp.
I also demonstrate ArcGIS and show the data and topography from Vulcano.

At Vulcano, the students have the opportunity to put into practice their hazard and risk knowledge. The program starts with a field trip and lectures on the various volcanic hazards (unrest and degassing, single vulcanian, persistant vulcanian, subplinian from the main edifice ("La Fossa") and strombolian and lava flow eruptions from the adjacent "Vulcanello). Then the students work through vulnerability, warning messages, and even have a crisis exercise. They stay busy from 8 am to 10 pm. The studnet have to present almost every night a poster on what they analyzed for that day, with the assembled instructors as audience and evaluators. There are also evening lectures including a review of Italian earthquakes with extended lecture on L'Aquila by me and a very nice review of Italian Civil Protection by one of its representatives. And, one of the highlights is a volcano crisis "play" at the local elementary school in which the students have a script and take various roles as community members, media, safety staff, government officials, scientists, etc. to go throught a possible volcanic crisis at Vulcano. It was very cute and a great demosntration of how to engage communities to understand the hazards they face and what to do.

Professor Mauro Rosi from University of Pisa lecturing to the group with La Fossa vent behind.
Nice action video from the Mavic Air
INGV team demonstrating gas sampling from the fumaroles.

In order to demonstrate acquisition of topography as well as collect some for some of the research activities ongoing at Vulcano by the team, I worked with an INGV colleague Il maestro Dr. Fabio Pisciotta to collect photos from drones for structure from motion reconstructions. He has a lot of experience droning at Vulcano and was a great teacher. We teamed up with his Phantom 3 and our Phantom 4 Pro and collected more than 6000 images over the edifice. Stay tuned for the models...

Drone team.
Drone view of La Fossa.

Monday, January 15, 2018

Viewing 3D planes (discs) with a specified diameter and orientation in ArcScene

We have been pondering how to visualize planes in 3D as a way to assess correlation of beds in an area. My colleague Chris Campisano and our jointly supervised PhD student Dominique Garello was asking about this for a while. We discussed a few solutions, including the MOVE suite and RIMS among others. I know there is a lot of software out there for this.

I decided to tackle it in a very simple way with the constraint that it would only use Excel and ArcGIS (ArcMap and ArcScene). I googled around an there was not an obvious solution already.

The basic steps:

  1. Produce a disc in MS Excel by creating a circle with a specified diameter and center. Rotate the dip around N-S axis and then rotate around vertical to apply the strike (then make it the correct size and translate to correct center)
  2. Load the rim points into ArcMap, view the X Y points with elevations
  3. Create a TIN (triangulate the rim points to make the disk)
  4. Visualize it in ArcScene

I wrote a tutorial (link) and the spreadsheet is here.

Monday, October 2, 2017

Structure from Motion using video from my phone camera

Introduction. In my last post, I showed how I had extracted frames from satellite-derived video to build a 3D model of a mine from space. In this post, I show a similar workflow for phone camera: take a video of an object (some times a lot easier than numerous frames although lower quality) and make a 3D model using Agisoft Photoscan.

Video to images. (this part is repeated from the last post). The main generic challenge for SfM from video is to extract the video frames and prepare them for the SfM. The SfM part is no different from what my group has been doing for a while with Agisoft Photoscan. I used MATLAB to do the video processing. The script is here: readplanetvid.m. The main code bits include:
PlanetObj = VideoReader(videoname); %make a video object from an MP4 file
vidWidth = PlanetObj.Width; %get the width
vidHeight = PlanetObj.Height; %and height

mov = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
'colormap',[]); %set up a MATLAB structure to contain the video

k = 1;
while hasFrame(PlanetObj)
mov(k).cdata = readFrame(PlanetObj); %pull out the frames one at a time from the MP4 object and put them in the mov
k = k+1;
end

step = floor(k/number_of_frames) %determine how many frames to skip each time to get the desired number
for i = 1:step:(k-1)
framepart = sprintf('_frame_%06d.png', i);
filename = strcat(foldername,'/',projectname,framepart);
imwrite(mov(i).cdata, filename) %easy to write the frame out as a png file
end

Video of a rock sample in my backyard. I took a short video of a piece of obsidian on a table with my Samsung J3. The nice thing about it was that I could gather a large number of views around the sample with relative ease. From that video, I extracted 150 frames, for example see below



I ran the files through the Agisoft Photoscan sequence of alignment (high), build dense cloud (medium), build mesh (medium), and build texture (medium). Here are a few screen captures of the result:

This one shows a somewhat complex background, but nicely indicates the path of the camera too.

And here it is with a trim to only show the sample on the table:

Structure from Motion using video frames; MATLAB for frame grabs and an example from satellite video

Introduction. Occasionally we and also we have gotten a question as to whether it is possible to use video frames as input for Structure from Motion models. This has certainly been done before with good success. For example, Yuichi Hayakawa did it starting with news video for a landslide triggered by the Kumamoto, Japan Earthquake in April 2016. Roman DiBiase showed me how he had done it video from helicopter and even performed topographic differencing with lidar for the Big Sur Landslide (e.g., NPR site and USGS site).

So, in a fit of procrastination, I decided to play around with the process myself. I was motivated originally by an idea from Andrea Donnellan and others at JPL to do topography from satellite video. They wrote a report entitled Gazing at the Solar System: Capturing the Evolution of Dunes, Faults, Volcanoes, and Ice from Space and I worked with Andrea and her team some on the problem.

Video to images. The main generic challenge for SfM from video is to extract the video frames and prepare them for the SfM. The SfM part is no different from what my group has been doing for a while with Agisoft Photoscan. I used MATLAB to do the video processing. The script is here: readplanetvid.m. The main code bits include:
PlanetObj = VideoReader(videoname); %make a video object from an MP4 file
vidWidth = PlanetObj.Width; %get the width
vidHeight = PlanetObj.Height; %and height

mov = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
'colormap',[]); %set up a MATLAB structure to contain the video

k = 1;
while hasFrame(PlanetObj)
mov(k).cdata = readFrame(PlanetObj); %pull out the frames one at a time from the MP4 object and put them in the mov
k = k+1;
end

step = floor(k/number_of_frames) %determine how many frames to skip each time to get the desired number
for i = 1:step:(k-1)
framepart = sprintf('_frame_%06d.png', i);
filename = strcat(foldername,'/',projectname,framepart);
imwrite(mov(i).cdata, filename) %easy to write the frame out as a png file
end

Satellite video from Terra Bella. I have been watching the hi resolution satellite activity with great interest. Skybox had a few relatively high res (approx 1 m ground resolution) visible and near IR satellites with video capability. They were bought by Terra Bella (google) and then now are owned by Planet (who were just visiting us on the ASU campus last week and with whom we are building some collaborations). Some of the Terra Bella imagery is available on youtube. I grabbed one video of the Usak Mine in Turkey (used real player to convert youtube to mp4):

You can really see the parallax as the satellite moves over (not to mention the activity of the vehicles).

I ran my script on the mp4 and extracted 100 png frames. Here is an example:

I ran the files through the Agisoft Photoscan sequence of alignment (high), build dense cloud (medium), build mesh (medium), and build texture (medium). Here are a few screen captures of the result:
You can see the model and the camera positions. They are in the roughly correct arc, and relatively far away, but they should be much farther (orbit is approx 450 km).
Nice looking textured mesh. It is distorted, but not too bad, all things considered!
And, here is the point cloud in Cloud Compare.

What did we learn? We learned that the SfM from video is doable (see a future post from my backyard and phone video). Here is the Photoscan report on the Usak project. The geometry that is computed from the satellite video is not bad. Agisoft Photoscan does a pretty good job. We cannot get under the hood very easily to see more about the processing. I think that someone who knows more about computer vision than me would be able to comment as to the performance. I think that the main issue is probably the relatively low angular variation for the model.

Planet Team (2017). Planet Application Program Interface: In Space for Life on Earth. San Francisco, CA. https://api.planet.com.

Monday, June 5, 2017

Some new San Andreas Fault tour videos of 1 m bare earth hillshades

I have been preparing a lecture and I built some new simple videos flying along the San Andreas Fault. The videos are made by me flying along in Google Earth with 1 m hillshades produced from lidar topography data collected along the San Andreas Fault. The videos are on youtube in this play list: https://www.youtube.com/playlist?list=PLFfZSFyNZ_jZm86F1TsnYfuuYNef_Uh21. I also put the MP4s in this folder--they are numbered 1-8 from NW-SE.

The flights follow generally along the San Andreas Fault from Point Arena to the southern Carrizo Plain (Dragon's Back and Northern Elkhorn Hills):

The data were processed at www.opentopography.org and come from 3 really cool datasets:

Monday, May 22, 2017

One dimensional morphological modeling of transport and production- limited fault scarps

Over the years, I have maintained a steady obsession with fault scarps. For my Ph.D., I worked on a few aspects of fault-scarp development: Arrowsmith, J R., Pollard, D. D., and Rhodes, D. D., Hillslope development in areas of active tectonics, Journal of Geophysical Research, 101, B3, 6,255--6,275, 1996. Correction: Journal of Geophysical Research, 104, B1, 805, 1999. Since then, I have kept the work going along, mostly with teaching applications. In this blog post, I wanted to share some of the presentations and tools that are available to explore, learn about, perform one dimensional morphological modeling of transport and production-limited fault scarps.

A few definitions:

  • One dimensional--means elevation (H) as a function of distance along a profile (x).
  • Transport-limited--there is enough transportable material available for any erosion that comes from the application of the mass continuity equation. In this case, the transport capacity is equal to the sediment supply.
  • Production-limited--there is insufficient transportable material (regolith=material between topographic surface and top of bedrock) for erosion. In this case, the transport capacity exceeds the sediment supply locally.
  • Diffusion erosion--transport capacity is scaled by local slope and a constant k. The consequence of this transport rate choice and the application of continuity for transport-limited conditions yields a diffusion-like or heat-conduction-like behavior.

This presentation (PPT and PDF) provides a bit of a review of fault scarp research as I saw it mostly about 5-10 years ago. This PPT has two embedded movies which illustrate this basic behavior: PPT. Transport-limited scarp movie; Production-limited scarp movie

Transport-limited models:

This web page from my Computers in Earth and Space Exploration class lays out the main derivation and numerical implementation: Lecture 8: Exploring diffusion using Excel. This older page has some Matlab and Excel implementations of 1D transport-limited linear diffusion: Scarp diffusion exercise. Finally, here is a 2D version of transport-limited non-linear diffusion in a paper by Mattia de Michieli Vitturi and me: de Michieli Vitturi, M. and Arrowsmith, J R., Two dimensional nonlinear diffusive numerical simulation of geomorphic modifications to cinder cones, Earth Surface Processes and Landforms, doi:10.1002/esp.3423, 2013.

Production-limited models:

George Hilley significantly updated my original code and produced the Penck1D imlpementation in MATLAB: zip file. Here is an older version of the MATLAB (no gui): zip file.
The software is delicate in some ways so you may have to try it a few times! If it crashes, just start over. One important thing is that it works best if downhill is to the right.

Note in particular the user's manual we wrote in 2006: Hilley, G. E., and Arrowsmith, J R., Penck1d: Transport- and production-limited fault scarp simulation software, user's manual for software used at 2001 Geological Society of America Short-course: Tectonics and Topography: Crustal Deformation, Surficial Processes, and Landforms Cosponsored by GSA Structural Geology and Tectonics Division and taught by Dorothy Merritts and Roland Bürgmann.