Thursday, July 2, 2015

elog feature requests

elog is pretty cool and is used on the US Coast Guard ice breaker Healy.  My feature requests...
  • The ability to track the location of the server and/or user for mobile usage.  e.g.  the U.S. Coast Guard ice breaker Healy uses elog.  The ability to export with gdal to KML/Shapefiles/etc would allow logs to be on maps.  e.g. Be able to use gpsd NMEA GPS location on servers.
  • Ability to submit from Android devices with Open Data Kit (ODK).
  • Simile Timeline view of logs
  • Export to msgpack and/or protobuf 3 for ease of writing add ons
  • Integration with flowdock
  • Integration with github for issue tracking and travis-ci for software build/test status
  • Ability to sync multiple servers that are not always connected

Monday, June 15, 2015

Generic Sensor Format (gsf) on github

I'm finally to a point where this is worth talking about.  I started with GSF version 03.06 downloaded from the Leidos website (Leidos split off from SAIC last year).  I used that to start my gsf github repo.  I've given it a really simple GNU Makefile build system and added some basic read testing using Google's gunit/gmock testing suite.  I've setup travis-ci to run the tests every time I push changes.  I even setup Coverity Scan to do static analysis.  I started doing some initial cleanup (spelling, consistently capitalizing GSF in comments), but I need to flush out the unit tests before I start working on the 46 Coverity issues and working on making GSF compile without warnings.  To help with creating tests, I've started writing a pure Python GSF reader so that I can pick packets out of test files and assemble minimally sized test files from real data.  I also need to use the C GSF library to write out some small test cases that cover all the key corner cases.

My original starting point of gsf from Leidos.  It's a shame that they don't have a public repo that I could have cloned with the whole history.


A list of things I'd like to do for GSF:


First green build with Travis-CI:


Coverity summary:



Friday, April 17, 2015

My new ais stream processing code for libais

For a long time, I've had the not so great ais_normalize.py in noaadata to manage multi-line NMEA AIS VDM messages.  It worked for the old USCG format, but it was brittle and cruft code.  Egil added aisdecode to libais based on ais_normalize, but that was building on a terrible foundation.  Today, I pushed the final patch for my nmea_queue module that can handle text, bare NMEA, TAG Block (including Orbcomm extensions), and USCG old CSV metadata.  I still need to add a couple non-VDM messages to the system to work out how to parse those cleanly.  With the new gpsd_format library (led by SkyTruth), libais and gpsd are starting to really play well together.  The design goals of the two are extremely different, so think carefully which you want to use.  In my case, I use both.

Overall, I'm much happier with the state of libais and excited to talk to many folks in the AIS community at the AISSummit 2015 conference in Hamburg next month.  Paul Woods of SkyTruth and I will be giving a pair of talks that will go over how to use "Big Data" techniques and technologies to tackle larger AIS databases with ease.  We will talk about many of the specifics of what has gone into Global Fishing Watch.

I've also been putting work into gpsd, BitVector, and ais-areanotice with a little bit on noaadata (noadata is a mess).  More to come.


Thursday, March 19, 2015

Where to put the optional marker in a regex?


I'm looking back at my AIS VDM python regular expressions this morning.  It seems obvious now that I look at this code block, but when a field is missing, I'd rather get a None back, so the "?" goes outside the named regex block.

ipython

In [1]: import re

In [2]: a = re.compile(r'(?P<seq_id>[0-9]?)')

In [3]: b = re.compile(r'(?P<seq_id>[0-9])?')

In [4]: a.match('').groupdict()
Out[4]: {'seq_id': ''}

In [5]: b.match('').groupdict()

Out[5]: {'seq_id': None}


Tuesday, March 17, 2015

Dynamic Ocean Management


I'm to lazy to switch to a machine that has Photoshop and fix up the images, but check out this article on "Dynamic Ocean Management: Identifying the Critical Ingredients of Dynamic Approaches to Ocean Resource Management" that talks about WhaleALERT!  doi:10.1093/biosci/biv018



Thursday, February 26, 2015

The Robert Schwehr Memorial Fund

My dad:

The Robert Schwehr Memorial Fund has just been established at Hidden Villa. It is a beautiful nonprofit educational farm that my dad loved and one of his favorite hiking spots. If you are interested in making a donation, please include the phrase "Robert Schwehr Memorial Fund" in the comment section of the online donation page. Here is the link http://goo.gl/a8CZmi 



http://www.mercurynews.com/peninsula/ci_27585937/los-altos-man-struck-by-car-mountain-view