Fanning Software Consulting

Fanning Software Consulting Services

Picture of David Fanning (27K)

Since late 1996, Fanning Software Consulting has been providing customers with IDL programming services, including advising them on the best way to solve their IDL programming problems, writing IDL programs for them, and training their staff to use IDL in the most efficient and effective way possible. Since January 2002, Fanning Software Consulting has teamed up with Burridge Computing in England to develop, with owner Dave Burridge, an object-oriented IDL library that allows us to build completely object-oriented programming solutions quickly and efficiently. We are proficient in the use of object graphics, object programming methods using direct graphics and IDL widgets, and the visualization of all types of scientific data. Among our world-wide customers are several branches of the US military, the National Research Council of Canada, a large consumer products company, numerous universities around the world, the Max Plank Institute for Astronomy in Hamburg, Germany, small medical imaging companies, and a large oil company. We have built everything from one-of-a-kind research tools that involved a year or more of our time, to simple data readers that we can build in a matter of a couple of hours. We have also taught IDL courses at numerous locations in the United States, Europe, Australia, and other countries. Please contact us today to discusss your consulting requirements.

Interactive, Flexible, and Extendable Research Tools

Fanning Software Consulting is extremely cogniscent of the fact that we write research tools. For us, this means the IDL programs we write must be interactive, flexible, and easy to maintain and extend in different directions as knowledge and experience accumulate in a research setting. Only object-oriented programs consistently meet these objectives. That is why 90 percent or more of the programs we write for customers use IDL objects in one way or another.

An object-oriented surface visualization program.

For 3D graphics, we recommend using the Object Graphics system built into IDL. Here is an example of a 3D surface routine that allows true 3D interactive rotations. Many applications, however, will use the easier-to-use Direct Graphics system in objects. This means you won't have to learn a new graphics system just to update your software.

Object-Widget Library for Fast Development

Dave Burridge and I have spent over 500 hours designing, building, and testing a library of IDL objects that for the first time seamlessly merges IDL object and widget capability into the same programming system. We have tested the library by building a large satellite observation system for a client. We have found that it scales beautifully and can be used to create both large and small interactive applications.

The library has built-in capability to self-document the objects used in the application in the form of HTML files, to self-manage object memory management (objects are automatically destroyed when other objects in the system are finished using them), and to flexibly manage widget events within the object hierarchy.

We have found building applications with our library to be 30-50 percent faster than before. But the real benefit comes in how easy it is to add additional functionality to the application. For the most part, adding additional functionality is similar to a plug-and-play operation. Our object hierarchy framework simply accomodates new objects with little or no additional work beyond creating a button in the graphical user interface and writing the new functionality.

An object-oriented plotting tool.

This plotting tool is a sophisticated object wrapper for the IDL Direct Graphics Plot command. Here you have the improved functionality of an object program with the familiarity of commands you already know. Users can set 50-60 different keywords from the graphical user interface and see immediate updates on the display.

-------

Interactive Image Applications

The particular area of expertise at Fanning Software Consulting is in creating interactive imaging applications. Whether your application involves microscope or medical images, airborne or satellite sensor images, or even telescope images, we can help you design an interactive system for reading, viewing, and processing your data. If ENVI is too much for you, and you want something more targeted to your particular research problem, then we can design and build an application with ENVI-like features at a much more affordable price. Recently, we have built an extremely sophisticated satellite meteorological system, that worked with image overlays, maps, and other image enhancement layers. We have also built research tools that worked with NEXRAD, TRMM, and QuikSCAT satellite data.

An interactive research tool for comparing TRMM and QuikSCAT data.

This interactive research tool is for quickly comparing TRMM and QuikSCAT data. It allows the user to interactively search and zoom into TRMM rain events before searching for overlaps in satellite coverage with the QuikSCAT data. When overlaps are discovered, the program is used to compare results.

A medical imaging tool for selecting images for further processing.

This medical imaging application is used by clinicians to interactively review and select images to undergo further processing. Clicking the right mouse button on an image will zoom it for closer inspectioin. Clicking the left mouse button with select/unselect the image from processing.

An interactive research tool for viewing DICOM images.

This interactive reseach tool is for viewing and zooming into DICOM medical images. Users can interactively window and level this 16-bit dataset.

We specialize in interactive image processing functionality.

We can provide any number of interactive and non-interactive image processing functions for your research application. This particular application allows the user to perform an interactive histogram stretch on the image.

-------


[Contents] [Training] [Consulting] [Tips] [Programs] [Related Links]