Julia Language for Scientists

Today I wanted to take a moment and introduce a programming language to my friends and colleagues. While certainly not a common topic, I do so because I believe that it is well worth your time. Rather than trying to get non-programmers into a language, I write this for the already initiated such as those who use Matlab, R or Python (amongst others) since the real benefits of learning one language rather than another comes when the tasks at hand are limited by the language itself. For example, consider if you’re problem or task (such as a model) was required...

Data Compression: Benchmarking Performance on Generic Data

Data compression is one of those things that most people don’t really think about. We all know about the benefits of using a ZIP file if our attachment is too large or if we have a bunch of files we want to share with someone over email. Outside of those niche uses, data compression by the end user has largely fell by the wayside in our day of terabyte hard drives and massive USB dongles. And that may be just as well since we’re likely more productive not having to go through the extra step of unpacking an archive before using...

Getting Started in 3D Printing

As someone who enjoys working on projects and tinkering with everything from computer systems to welders, I’ve always had a passive interest in 3d printing technology; yet I never seriously considered getting a one for myself. 3d printers work in much the same way a normal printer does, except instead of ejecting ink out of the nozzle it extrudes molten plastic. By layering these thin layers of plastic (typically 50-500 microns) over and over again it can build up entire objects in a matter of minutes to hours. It’s a simple technology which seems to have only recently gained the critical mass...

End of the Semester

Believe it or not, but it is already the end of the semester for me and my peers. Somehow nearly four months have disappeared once again into that historical accident that we call the past. Since each of my three classes have required a project to be done for the final, I figure that I may as well adapt each of them here so I can share them with others. For the first entry, here is my Marine Primary Productivity final which includes aspects of both the presentation as well as the paper. (more…)

Paper of Note: Re-designing Distance Functions and Distance-Based Applications for High Dimensional Data

While it may be argued–and successfully so–that this is an article pertaining to an esoteric subset of computer science that few people will ever find practically useful, you may actually find it quite intriguing. I’ve found the article quite eye-opening and I’m certainly no computer scientist. What this article does do, which I feel is critically important for the progress of science and for the interaction of science with society, is unveil a new perspective on something that we do deal with on a day to day basis. What could be more mundane than distance? (more…)

Remote Sensing Part 2

In a previous article I described a technique to determine the dye concentration from drone images, and I hope it sounded like a reasonable plan. Nevertheless, this plan did go ary when less than ideal conditions arose and the results got jumbled with the imperfections of the real world. So to make amends, I will layout a new pipeline that–with any luck–will work better in practice than the previous one. (more…)

How Twitter Improved my Ecological Model

For a last couple weeks I’ve been working on a marine ecosystem model using a technique called Inverse Modeling(1)I’ll be sure to do a writeup on what Inverse Modeling is and what makes it interesting in the future.; and while there’s been lots of progress, I’m starting to get to the point where the model takes some time to run. As you can imagine, there’s a lot of waiting-around time associated with having a model run for an hour or more at a time. As fate would have it I thought up a pretty fun way to keep updated on the progress...

Computational Fluid Dynamics: Improving FTCS

Today I wanted to share as series of interesting finite difference schema that is much less about the implementation and more about the mathematical underpinnings of the system. This is intended for someone who may be new to finite difference models yet found feel confident with the material I presented last time (Finite Difference Schema). The family of schema presented here is a set of explicit approximations that represent an evolution of the Forward in Time Centered in Space scheme we saw before. Just as before, mathematical rigour will be sacrificed for the sake of conceptual understanding; but the conceptual...

Finite Difference Schema

I want to share with you a step by step guide to how I structured, simulated, and compiled my results for comparing two basic finite difference approximation schema. The system which we will be modeling is given by this differential equation: You are not alone if you are feeling uneasy upon looking at this equation; but don’t worry, we’ll get through it together. This equation is classified as a ‘hyperbolic, linear, first order differential equation’ which simply means (A) hyperbolic means that the solution is given by the initial values given to it—we’ll talk about it—; (B) linear means that there are...

Finite Difference Implementation

For my numerical methods course–a course centered around the tools and techniques used in modeling ocean systems–we have been tasked with programing a 1D model of a differential equation with simple initial conditions. Our implementation has to be in Fortran, a computer language with a long history, which has been a bit of a learning curve to say the least. Nevertheless, I wanted to take couple minutes and share my preliminary results here. (more…)

Ray Tracing, or Why I bite off more than I can chew

I’ve spent countless hours and a considerable about of energy on getting my ray tracer up and running, and this is what I have achieved: While it may look like modern art(1)Actually, since art exists independent of intent and as a result of a observer-entity interaction, this picture would be “art”. Whether it is modern art rather than some other school I hazard no guess., it is actually a rendering of two triangles in 3D space complete with color gradients and perspective. And I’m pretty proud of this, but let me provide a modecum of background before we continue. (more…)...

Learning R

One aspect of graduate level work that most people  are unaware of, yet every graduate student knows, is the tedium of making “publication” quality charts and displays. Figuring out a decent method to show off your data in an elegant figure is essential if you would like your work respected. True, you can always fire up Microsoft Excel and plot your data in one of those colorful charts that come pre-installed, but I’d call that ‘high-school’ quality. (more…)

Paper of Note: Fast, Minimum Storage Ray-Triangle Intersection

Introduction Raytracing is modern computer graphics technique used to render life-like images for videos and animations. While it’s a relatively modern technique–coinciding with the birth of digital modeling–the inspiration for the methods can be traced back to ancient Greece. While some Greeks truly believed that our eye’s emit the ability to see and not that our eyes collect the light, Ray Tracers actually work on that very principle. Starting from the camera or ‘eye’, the ray tracer sends out ‘light’ rays and monitors their interactions with the objects in the scene. At the end of the trace, an image is compiled based...