| Follow with RSS

KDM-IDL Code Library

July 30th, 2009 | No Comments | By Ken Mankoff

I have spent quite a bit of time developing IDL code in the past, and it appears I will do some more in the near-term future. I have decided to release my IDL code library to the public so that others can perhaps benefit from my work. This is a work-in-progress and access is via Subversion.

One subset of the library is the KDM_KML lib for writing KML files. This code should make it fairly simple to display data sets in Google Earth from IDL.

I have currently implemented about 50% of the KML API and will get the rest implemented as time goes on. Right now layers can have overlays, points (placemarks), or linestrings (paths). Any element (that the API supports) can have a timestamp, and styles are supported too. With knowledge of the KML API you can create artistic balloons with whatever content you like that can even link to each other.

Tags: , ,

KML Interactive Sampler

July 16th, 2009 | No Comments | By Ken Mankoff

If you create Google Earth or KML layers, you’ll want to find a 2nd monitor and keep the KML Interactive Sampler open full screen. An invaluable resource for hand-building a KML or when writing code.

KML Interactive Sampler

KML Interactive Sampler

Tags: , ,

Post Twitter Experiment

July 5th, 2009 | 2 Comments | By Ken Mankoff

I recently mentioned I’d perform a small Twitter Experiment. It was certainly an interesting week to dive into Twitter. The Iran elections had just occurred. Searching for Iran was worthless due to non-Iranians tweeting support, but a friend mentioned an interesting person to follow (they were on the ground in Tehran) and I felt like I had front-row seats to a revolution.

Somehow @bodc followed me on Twitter after I wrote my first post, before I even tweeted. This was the one benefit of my experiment, as I am now aware of yet another oceanographic data center. Other than @bodc, I did not gain anything by tweeting my occasional work progress throughout the week, and nobody following me replied to anything so I don’t know if anybody else gained anything either. What I did learn is that the web interface is worthless, and if you want to use Twitter it helps to have the right software interface.

I hear TweetDeck and TWhirl are excellent interfaces but they are based on Adobe Air and I am morally opposed to using Adobe products when possible… which doesn’t leave much. If you know of a non-Air alternative to TweetDeck please let me know. It turns out TweetDeck does have a non-Air-based iPhone client which is the best Twitter interface I’ve found to date. TweetDeck allows me to follow just my friends in one pane, a search for the word “Antarctica” in another pane, two Tehran-based Iranians in a 3rd pane, etc. It turns the non-stop stream-of-consciousness that is Twitter into a manageable stream of data.

In conclusion, I’m still not sure what or why, but I can tell I’ll continue to follow it and contribute via it on occasion. And due to the wide software and access support it is still the easiest way I know of to send small bits of information onto the web where they can be consumed by others devices or humans.

Tags: ,

TeX Symbols

June 29th, 2009 | No Comments | By Ken Mankoff

DeTeXify is a stunning piece of software (embedded in a webpage). When writing a LaTeX document one often wants to place a symbol in the document, but does not necessarily know the TeX command for the document. The solution was to search lengthy pages of symbols. DeTeXify allows you to draw the symbol with your mouse, and then provides likely matches and their TeX code.

Tags: ,

My Twitter Experiment

June 14th, 2009 | 1 Comment | By Ken Mankoff

Everybody else seems to be discussing and commenting on Twitter so I figured I would too. I don’t know what it is, nor why it is popular, but I do use it from time to time, and will begin a Twitter experiment starting tomorrow morning.

My Twitter usage is limited to following some friends who have chosen to broadcast their activities there rather than on a blog. Most of these people have blogs too, and I follow those also. In addition to following others, I have posted some thoughts there myself, and I’ve set up my parents solar thermal system to tweet when it starts to overheat. I chose this simply because it was the easiest way for them and the technicians to get an SMS on their phone, although there exists an infinite number of non-twitter implementations.

My Twitter Experiment will begin tomorrow, Monday June 14 and continue to Friday, June 19. I am beginning a new project for work, and will tweet my thoughts, progress, trials and tribulations as I go along. The project is officially one week long, although it will continue in other forms for the next few years until I finish my PhD.

The work this coming week will be to write some software to access, visualize, and analyze oceanographic data from the Amundsen and Bellingshausen seas in Antarctica.

Tags: , ,

Geo-Tagging Photos

March 23rd, 2009 | 1 Comment | By Ken Mankoff

I have ~2700 photos from my recent trip to Antarctica. All but a few dozen were taken while on the ship, and the GPS track of the ship is known. The few that were taken off ship were within a three mile radius while deploying the ITP. If you don’t have a ship recording your GPS for you, you can get simple GPS systems for less than $100, or even a few $10s of dollars on eBay. The TrackStick is good for this type of project as it does not have a screen or realtime outputs.

I wanted to geotag all my photos by adding the latitude and longitude to the JPEG EXIF data. I was going to code it as the algorithm is quite simple (for each image, get the creation time, find the GPS location nearest that time in the GPS list, and add the (lat,lon) coordinates to the image), but not surprisingly this problem has already been solved. Repeatedly.

Three steps are required.

  1. Convert your GPS data into GPX format. If you are comfortable on the command line then use gpsbabel. If not, then go here for a web interface to gpsbabel. If you need help post in the comments. If you were on NBP09-01 a GPX file of our cruise is here.
  2. Add the GPS coordinates to the image EXIF tags. There are many tools that will take a GPX or NMEA file and add latitude and longitude coordinates to your photos. I use gpicsync and photoGPSEditor looks nice too.
  3. Output KML files. gpicsync does this for you, and has a list of other software that might help here. You can also upload your photos to Picasa and get a KML file that way (instructions).

The end result might look like this.

Tags: , , , ,

Iridium Satellite Phone as Modem on OS X

December 29th, 2008 | 4 Comments | By Ken Mankoff

I have an Iridium 9505A and a MacBook and the necessary hardware and software to tether the two and use the phone as a modem. I can now make voice and data calls from anywhere in the world where I have a clear view of the sky. It took a while to get it set up so I’ll document it here…

Iridium

More »

Tags: ,

Low Bandwidth Graphics

December 3rd, 2008 | No Comments | By Ken Mankoff

As I’ve said before I will have limited bandwidth from the boat. I’d like to send not only text but images of the boat, icebergs, Antarctic wildlife, and anything else worth photographing, so I’ve been experimenting with ways of getting images off the ship. Based on the results below, I think I’ll stick to text descriptions rather than text graphics, and perhaps a very low quality (but decently sized) image every once in a while.

Here is a an image of the boat. This image is 77K, which would use 3 days of bandwidth quota to transmit:


The Nathaniel B. Palmer

The Nathaniel B. Palmer. Image courtesy of NSF. Image size is 77kb


If I shrink the image to 25k, or one day of bandwidth, it is this size


Small Nathaniel B. Palmer

Nathaniel B. Palmer. Same image as above but resized so that it is 25 kilobytes in size, or 1 days bandwidth quota from the ship.


Or I can reduce quality rather that size, in which case it looks like this. The only real difference appears in the now-blurry name of the boat:


Nathaniel B. Palmer. Same image as above but quality reduced so that it is 25 kilobytes, or 1 days of bandwidth quota.

Nathaniel B. Palmer. Same image as above but quality reduced so that it is 25 kilobytes, or 1 days of bandwidth quota.


However, if I convert it to ASCII art, it looks like this, and takes up a mere 1.6k. I could transmit 15 of these a day before I reach my quota.

~~~~~~~~~~~~~~-------------------------------------------~~~~~~~~~~~
~~~~~~~~~~~~~--------------------------------------------~~~~~~~~~~~
~~~~~~~~~~~-~---------------------------------------------~~~~~~~~~~
~~~~~~~-----------------------~&---------------------------~~~~~~~~~
~~~~~--------------------------++---..-----.-----------------~~~~~~~
~~--~-----------------+&-&~--~*PRR~........-..----------------~~~~~~
~~-~--------------------+.---*&&P##.............----------------~~~~
------------------------+-...-~*++-...+..-.....-...----------------~
------------------~+----+~~+*+$+P$+++*+-~--.....-......------------~
----------------.$&#+##R&&&*~*+++++++++&&$&--...-.....--------------
-----------------~&&PPP&$+~~~R+~*$**$&&&PR&+**..P.....--------------
----------------.......+~~++++++~+~~~~~~~~~~~$.&.....---------------
-----------------....-.~~~-~~+~~~~#+&~+~~~~~~PRPPPPPP*--------------
-------------------~#-~+~~+****$*&PPPPPPPPPPPPPPPPPPPPPP----------~~
--------------+~-*P#+PP~~~PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP+--------~~~
--------------+$PRRP#$&&P&PPPPRPRRRRPPPPPPPPPPPPPPPPPPP~-------~~~~~
-------------$###R#P&$&&PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP-------~~~~~~~
-------------*~PPR#R&&&RPPPPPPRPPPPPPRPPPPPPPPPPPPPPP~------~~~~~~~~
---.....-......~&&$&&&PPPPPPPPRPPPPPPPRR#PPPPPPPPPPP---------....-..
---.--.................. ~+. ...      .+#R.     &PP- --.-...........
--------....--............... . . . . .. .      .  ...............-.
-------..--...................... .    ..   .. ................-----
----------............................... .....................-----

Here is an image I took last time I was in Antarctica, and the ASCII art version too. Image size is about 20k (a day of bandwidth). Text size is less than 2k (I can send around 15 per day):


Penguin in Granite Harbor, Antarctica

Penguin in Granite Harbor, Antarctica

----------------------------------------------
----------------------------------------------
----------------------------------------------
----------------------------------------------
----------------------------------------------
-------------$PRRRR#RR#RP---------------------
------------------########--------------------
-------------------R#R#P*+R&------------------
-------------------+++++~~~P------------------
-----------------~~~++##P&PPRR----------------
-----------------~~+~#RPRPRRRRR---------------
----------------~~~~~&#RRRPRRRR~--------------
---------------~~~~~~~#PPRPRPRRR--------------
---------------~~~~~~~~RPPRRRRRR--------------
---------------~~~~~~~~RRRRRRRRRP-------------
---------------~~~~~~~~+RRPRRRRRR-------------
---------------~~~~~~~~PRRRPRRRRR-------------
----------------~~~~~~+RRRRRRRRRR-------------
----------------~~~~~~*RRRRRRRRRR-------------
----------------~~~~~~PRRRRRRRRR&-------------
-----------------~~~~~&RPRRPPRRR--------------
-----------------~~~~~+PPRRRPRRR--------------
-----------------~~~~~~RPRRRRRRR--------------
------------------~~~~~~RR~+RRR---------------
------------------+~~~~~~~~+PRR---------------
----------~~~----RP&~~~~~~*RRRR*~~~~~~~~~~~~-~
--------~~~~~~~~~~+RP+~+~+PRRRRPRRRRRR+~~~~~~~
-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--------------------~~~~--~~~~~~~~~~~~~~~~~~~~
-------------------------~----~~~~~~~~~~~~~~~~
Tags: , , ,

Any RSS to Google Maps with Python

November 8th, 2008 | No Comments | By Ken Mankoff

Desire: I want to keep in touch with people during my upcoming trip to Antarctica, and I want you to get updates in whatever format you prefer (via email, on my site, with RSS, text messages, on a custom map or in a standard Google Map). Last time I went to Antarctica I blogged quite a bit (see 64 entries in ANDRILL category), including photos and videos.

Problem: I’ll be on a boat with no internet connection and a twice-per-day satellite connection limited to 25 KB/day of email. So for a 60 day cruise, I’ll be allowed slightly less than 1.5 megabytes transfer over the entire trip. The text of this post is around 1 KB, so I can write roughly 10 times this and read about 10 times this each day. I guess it isn’t that bad…

Solution: I’ve set up a system that provides the following behaviors, given that I can send email to one or more entities via To: Cc:, and Bcc: fields. Recipients can be individuals, this blog, or Twitter. Emails sent to individuals will go to their inbox. Email to this blog will be posted on the front page and show up on RSS. Emails to Twitter can be read on Twitter, your phone, or RSS. Any emails that end up in RSS that have geographic coordinates in them will be geocoded on my map.

None of this requires any programming skill except the mapping. I’ve written a small python script that will track an RSS feed and update the map if any posts contain geographic coordinates. If you are a programmer, read on to learn how it was done. If you aren’t enjoy the map

Remaining Issue: All this is one-way, me-to-you. I won’t see comments made on this site, and they won’t be seen by anyone else because I moderate them (unless you’ve previously commented), so this site will be a one-way communication while I’m on the boat. If you want to communicate with me, the only way is by doing a direct Tweet (@mankoff) or private Tweet (d mankoff). Any emails will be read when I get off the boat in March.

More »

Tags: ,

Oil Prices

November 1st, 2008 | No Comments | By Ken Mankoff
Price of broccoli (from FreshDirect) converted to equivalent value in barrels of crude oil

Price of broccoli (from FreshDirect) converted to equivalent value in barrels of crude oil

If you are interested in sustainability and reducing your oil consumption, you should install the Oil Standard Firefox Plugin. It converts all prices on all web pages (Amazon.com, Airlines, your online bank, FreshDirect, etc.) to the current equivalent value in barrels of crude oil. Note that this doesn’t know anything about the actual oil usage of an item (production, transport, etc.)

Tags: