Great post examining some of the reasons why the FFT algorithm is so fast compared to a naive implementation:

The goal of this post is to dive into the Cooley-Tukey FFT algorithm, explaining the symmetries that lead to it, and to show some straightforward Python implementations putting the theory into practice. My hope is that this exploration will give data scientists like myself a more complete picture of what’s going on in the background of the algorithms we use.

A nice list of resources for doing remote sensing in Python, especially if you already know IDL.

Nice example of why rainbow color tables can be misleading:

Regular readers will be aware of the #endrainbow campaign to reduce the use of rainbow colour palettes in scientific figures. At the recent EGU conference, I gave a talk on ‘making better figures’, which included an example of a published conclusion which was incorrect due to the use of a rainbow colour scheme.

via @asoconnor via @rsimmon

This is a great article about the change in balance between cities and roads in Google Maps between 2010 and 2016.

He also compares Google Maps versions to an old printed map:

Even though it’s from the early 1960s, the old map is more balanced than the Google map.

There are a lot of visualization lessons to be learned from cartography.

A Visual Introduction to Machine Learning provides a simple, visual explanation of using decision trees:

Recap:

  1. Machine learning identifies patterns using statistical learning and computers by unearthing boundaries in data sets. You can use it to make predictions.

  2. One method for making predictions is called a decision trees, which uses a series of if-then statements to identify boundaries and define patterns in the data

  3. Overfitting happens when some boundaries are based on on distinctions that don’t make a difference. You can see if a model overfits by having test data flow through the model.

The post, which is already ten months old, promises a second in the series on overfitting, but this short introduction is a fine standalone.

The ENVI Analytics Symposium is happening again August 23-24 this year in Boulder, CO:

The 2016 ENVI Analytics Symposium (EAS) continues its exploration of remote sensing and Big Data analytics around the theme of geospatial signatures to analytical insights.

Though I don’t use ENVI at all, remote sensing is still interesting to me and I would be interested in how this community is using “Big Data analytics”.

This is a great idea to visualize the punctuation in novels:

Inspired by a series of posters, I wondered what did my favorite books look like without words. Can you tell them apart or are they all a-mush? In fact, they can be quite distinct.

Robert Simmon redesigns a graphic:

Creating scientific graphics can be difficult: most scientists and engineers lack training in design, deadlines are tight, compromises must be reached between team members and management, and the available tools may be limited. Fortunately, many design guidelines are simple and easy to execute, which I’ll show by re-designing the following graph, originally presented by NASA at the 2015 American Geophysical Union fall meeting.

I would not have removed the inset map of the region because I thought it added useful visual context to the exact lat/lon location in the subtitle, but maybe that is just my unfamiliarity with that area. I also wondered what the graphic would look like if it used a Brewer diverging color table for the colors in each band instead of red for all positive values and blue for all negative values.

Explained Visually provides interactive, visual explanations of mathematical processes commonly used in science, such as eigenvectors/eigenvalues, least squares, and principal component analysis. The ability to interactively change the values in the examples and have the new result instantly displayed greatly helps with understanding.

Explained Visually is inspired by Bret Victor’s Explorable Explanations.

The recent article about how to investigate object code got me thinking about the various methods I use to find out about an object/class.

The code in the article, for the example of an object of class IDLgrColorBar, prints:

IDL> ab_obj_info, 'idlgrcolorbar'
Class: IDLGRCOLORBAR
Superclass: IDLGRMODEL
Superclass: IDLGRCONTAINER
Superclass: IDL_CONTAINER
Superclass: IDLGRCOMPONENT
Superclass: IDLITCOMPONENT

as well as some HTML information listing the methods of the objects.

One of the most useful techniques for me is one of my library routines to find the class hierarchy of an object:

IDL> mg_class_hierarchy, idlgrcolorbar()
IDLGRCOLORBAR
  IDLGRMODEL
    IDLGRCONTAINER
      IDL_CONTAINER
      IDLGRCOMPONENT
        IDLITCOMPONENT

This gives the same top-level information with a bit more detail (IDLgrContainer inherits from both IDL_Container and IDLitComponent), but does not provide any listing of the methods. If you know the name of the method, you can use another of my library routines to find out about it’s arguments:

IDL> man, 'idlgrcolorbar::computedimensions'
Filename: /Applications/exelis/idl85/lib/idlgrcolorbar__define.pro
result = idlgrcolorbar::computedimensions(self, osrcdest, PATH=path)

So I added a METHODS keyword to print out the methods of each class:

IDL> mg_class_hierarchy, 'idlgrcolorbar', /methods
IDLGRCOLORBAR
    result = idlgrcolorbar::computedimensions()
    result = idlgrcolorbar::init()
    idlgrcolorbar::calcsize
    idlgrcolorbar::cleanup
    idlgrcolorbar::getproperty
    idlgrcolorbar::setproperty
  IDLGRMODEL
      result = idlgrmodel::getctm()
      result = idlgrmodel::getxyzrange()
      result = idlgrmodel::init()
      idlgrmodel::add
      ...

IDLdoc produces these docs, which list the methods of IDLgrColorBar and the hierarchy of superclasses along with a lot of other information including comments that might be in the code headers, but not the methods inherited from those superclasses.

older posts »