05.30.2009 19:02
Gardening
A bit more gardening today. I'm
trying a few things that I've never grown before. This is
Asparagus??? Bummer is that you are supposed to wait till next year
to get any.
The herb section is coming along...
It's always nice to have company while you are out in the back yard...
The herb section is coming along...
It's always nice to have company while you are out in the back yard...
05.30.2009 18:57
Contemplating a server
A view into one of CCOM's server
rooms as Les does upgrades on one of our linux servers.
05.29.2009 09:33
Python regular expressions (regex) for NMEA strings
I've pretty much finished up my
python code to parse the over 100 NMEA strings that the Healy sends
me every hour. I've put the code online:
healy-py-0.2.tar.bz2.
The whole parsing thing is just a bunch of python regular expressions. Here are the GGA position and ZDA timestamp messages:
Note that in my regular expressions, I have a lot of "?" characters for all of the fields that might be blank. The one thing that is missing right now is to validate the NMEA checksum.
The whole parsing thing is just a bunch of python regular expressions. Here are the GGA position and ZDA timestamp messages:
gga_nmea_regex_str = r'''[$](?P<talker>[A-Z][A-Z])(?P<sentence>GGA), (?P<time_utc>(?P<hour>\d\d)(?P<minute>\d\d)(?P<second>\d\d\.\d*))?, (?P<lat>(?P<lat_deg>\d\d)(?P<lat_min>\d\d\.\d*))?, (?P<lat_hemi>[NS])?, (?P<lon>(?P<lon_deg>\d{3})(?P<lon_min>\d\d\.\d*))?, (?P<lon_hemi>[EW])?, (?P<gps_quality>\d+)?, (?P<satellites>\d+)?, (?P<hdop>\d+\.\d+)?, (?P<antenna_height>[+-]?\d+\.\d+)?, (?P<antenna_height_units>M)?, (?P<geoidal_height>[+-]?\d+\.\d+)?, (?P<geoidal_height_units>M)?, (?P<differential_ref_station>[A-Z0-9.]*), (?P<differential_age_sec>\d+)? \*(?P<checksum>[0-9A-F][0-9A-F])''' zda_nmea_regex_str = r'''[$!](?P<talker>[A-Z][A-Z])(?P<sentence>ZDA), (?P<time_utc>(?P<hours>\d\d)(?P<minutes>\d\d)(?P<seconds>\d\d\.\d\d*))?, (?P<day>\d\d)?, (?P<month>\d\d)?, (?P<year>\d{4})?, (?P<zone_hrs>[+-]?(\d\d))?, (?P<zone_min>(\d\d))?,? \*(?P<checksum>[0-9A-F][0-9A-F])'''I then build a dictionary of the compiled regular expressions.
regex_dict = {} regex_dict['gga'] = re.compile(gga_nmea_regex_str, re.VERBOSE) regex_dict['zda'] = re.compile(zda_nmea_regex_str, re.VERBOSE)For each line, I walk the dictionary trying each regular expression until one works or I run out of messages to try.
matches = 0 misses = 0 for line in test_str.split('\n'): for key in regex_dict: match = regex_dict[key].search(line) if match is not None: break if match is None: print 'No_match_for_line: "%s"' % (line.strip(),) misses += 1 continue match = match.groupdict() matches += 1Having named fields in a regular expression feels like mixing Lex/Flex and YACC/Bison, but without having to do as much work. Using Kodos to build and test the regular expressions makes this pretty easy to construct.
Note that in my regular expressions, I have a lot of "?" characters for all of the fields that might be blank. The one thing that is missing right now is to validate the NMEA checksum.
05.29.2009 07:00
Cyber czar for computer security
Obama calling for better security for computers [yahoo news]
... n Friday, Obama is expected to lay out broad goals for dealing with cyber threats while depicting the U.S. as a digital nation that needs to provide the education required to keep pace with technology and attract and retain a cyber-savvy work force. He also is expected to call for a new education campaign to raise public awareness of the challenges and threats related to cyber security. ...My first start suggestions:
- Require publication of source code and fund published code audits for critical infrastructure (I would include cell phones as critical infrastructure)
- Educate your users and developers
- Switch from Microsoft Windows to Linux (or sometimes MacOS)
- Stop using Microsoft Office and Outlook
- Ban MS Explorer as a browser
- Teach your users about encrypted connections - start using ssh and stop using ftp/telnet
- Don't blindly require security technology - e.g. whole disk encryption for machines without anything that needs protecting
- Build software that is easier to use makes users more aware of what is going on under the hood
- Don't make security so much of a pain that users bypass it
- Have IT groups help users find solutions rather than just punish users for trying to get their job done
05.27.2009 22:45
Roland and Colin in Antarctica
Roland and Colin have been in
Antarctica for the last month and a half for a whale tagging
cruise. Today is there last leg of the cruise.
Roland has posted some images of a Seal at Palmer station.
It's good to see some humor in the science team in their blog [duke.edu]:
Roland has posted some images of a Seal at Palmer station.
It's good to see some humor in the science team in their blog [duke.edu]:
... Not to mention all the pesky whales. This is the main point of why this job is total crap. Last night; perfect example - we pull up to station in the ice, do a 360 with the ship to clear a spot to drop the rosette in the water and before we can even open the door we hear explosions from outside. All I want to do is get some work done. Instead, I find myself running to the back deck we see them: 10, 12, whales, less than 8' from the side of the ship, probably grateful to have the clearing in the ice to play around in, and curious as well, they spy hop so high they can see over the rail, the water is so clear you see them coming from 50, 60' down. Water surface area to whale ratio is so low that odds are if I jump over the side of the ship, I won't get wet. They roll on their sides and stop, staring up at us, and then the krill come. It's raining rice krispies on a macro level, poor wannabe shrimp are popping out of the ice free clearing everywhere, ultimately screwed, as underneath them humpbacks circle like sharks. We wait for them to get bored; they don't. They come closer, lunge higher, grow in numbers, stop and go and come back immediately. Twenty minutes later - we've canceled science, due to whales! How the heck am I supposed to get any work done? and there's no regulation for it; I mean who do you call when whales pester you constantly? ...
05.27.2009 18:43
Python visualization book
Beginning Python
Visualization: Crafting Visual Transformation Scripts
[Amazon.com] looks like my kind of book.
From the slashdot review:
From the slashdot review:
... The first example is using GPS data. By using Python one can extract data from GPS receivers and enter it into the computer and manipulate it to do what one wants including creating graphs and charts. In this section he shows how to use CSV, comma separated values, as a most useful file format. He shows show to extract data from real world GPS devices and import it via serial ports and the PySerial module. It would be easy for the reader to duplicate and extend this project. The heart of the book is coverage of useful examples utilizing MatPlotLib, NumPy and SciPy. These related tools are easy to use and fully integrated with Python. MatPlotLib is for plotting data and graphs, including interactive graphs and image files. NumPy is a powerful math library comparable to commercial tools like MatLab, and SciPy extends NumPy to for the sciences. Examples are numerous and include signal analysis using Fourier transforms. ...
05.27.2009 17:57
Windows and grouchy com ports
We have a windows machine that is
controlling a device via the serial port. On boot, the computer did
not want to talk to the serial port. I couldn't figure out how to
list what is owning the serial port (which is pretty easy on
Linux...). Les and Will showed me what turned out to be the
solution to getting the serial port back. But, I still don't know
what the caused problem. Solution: Disable the com port. Wait 5
minutes for whatever it was give up and die. Enable the com
port.
First I kill the app that wasn't working and fired up Hyperterm.
Disable the port and let it sit...
Enable the port...
And now everything works as expected. Looking at the task manager, there was no change in processes.
Update 2009-July-08: Thanks to Hector M. for pointing out the solution:
First I kill the app that wasn't working and fired up Hyperterm.
Disable the port and let it sit...
Enable the port...
And now everything works as expected. Looking at the task manager, there was no change in processes.
Update 2009-July-08: Thanks to Hector M. for pointing out the solution:
[T]he problem with the grouchy Windows PC serial port is due to Windows scanning the serial ports on the PC on startup for serial mice - notice the alarmed serial mouse present in your screenshot. There is a Microsoft utility ComDisable (http://support.microsoft.com/kb/819036) which can be used to disable the scan on startup for selected ports.
05.27.2009 14:02
Another TSS shift - Great South Channel
Shift in Boston Shipping Lanes May Reduce Risk of Endangered Whale
Shipstrikes [NOAA News]
I had trouble understanding this press release. These two paragraphs are key:
I had trouble understanding this press release. These two paragraphs are key:
... Also on June 1, ships 300 gross tons and above will be asked to avoid an area in the Great South Channel from April through July, when right whales face the highest chance of being struck by ships. The channel is a transit route for the endangered Northern Right Whale as it migrates between summer and winter habitats. ... In addition to the rerouting, the width of the north-south portion of the lanes will narrow from a total of four miles to three miles. The width of the east-west portion of the lanes was similarly narrowed in 2007. ...Ranther than a picture of the whale tail, it would have been good to show the changes to the chart.
05.27.2009 13:17
Wolfram Alpha - maritime queries?
I have been trying to find maritime
related queries for Wolfram Alpha, without much luck. The only
really interesting one that has worked for me so far has been tide.
What have you found that is related to working with ships?
http://www.wolframalpha.com/input/?i=tides+Portsmouth+NH
Coming soon?
Queries that I've received from others:
http://www.wolframalpha.com/input/?i=tides+Portsmouth+NH
Coming soon?
Queries that I've received from others:
- http://www.wolframalpha.com/input/?i=london+miami Great circle distances (Dave C.)
- http://www.wolframalpha.com/input/?i=miami+sunrise Sunrise/Sunset (Dave C.
- http://www.wolframalpha.com/input/?i=156W+35N plot Lon,Lat (Dave C.)
- http://www.wolframalpha.com/input/?i=600+nautical+miles+to+statute+miles - nautical to statute miles (Brett)
05.27.2009 11:30
Emergency Response Puerto Rico
Emergency responders to conduct oil spill PREP Exercise in Yabucoa,
Puerto Rico [Coast Guard News]
It's clear that ERMA needs some help with ship names when zoomed ways out.
San Juan, Puerto Rico - Coast Guard, federal and Puerto Rico emergency responders in cooperation with Shell Trading (US) Company and O'Brien's Oil Pollution Service are scheduled to conduct a joint oil pollution response exercise at the Shell Chemical Yabucoa, Inc. facilities from May 27 to 28. ... Exercise participants will deploy response equipment to an oil spill simulated at Shell Chemical Yabucoa, Inc. facilities from 8 a.m. to 4 p.m. both days. Residents should not be alarmed by the increased presence of emergency responders and response equipment in the Municipality of Yabucoa and the Shell Chemical Yabucoa, Inc. facilities during the exercise. ...
It's clear that ERMA needs some help with ship names when zoomed ways out.
05.26.2009 15:17
USCG AIS Analytical Support
Just bumped into this solicitation
from Dec 2008...
Analytical Support For Automatic Indentification System (AIS) Technologies - HSCG32-09-I-R00007 - Sources Sought
Analytical Support For Automatic Indentification System (AIS) Technologies - HSCG32-09-I-R00007 - Sources Sought
THIS IS NOT A SYNOPSIS TO ADVERTISE A SOLICITATION THAT IS READY FOR RELEASE, rather the purpose of this Request for Information (RFI) is to (a) determine whether there are a sufficient number of responsible sources and (b) conduct market research regarding a potential five-year, Cost Plus Fixed-Fee (CPFF) Indefinite Delivery Indefinite Quantity (IDIQ) contract with the capability to provide Analytical Support For Automatic Identification System (AIS) Technologies. It is estimated that 14,500 of labor hours per year will be required. It is anticipated that 90% of the work will be on-site in New London, CT. With regard to this potential five-year contract, the U.S. Coast Guard (USCG) Research and Development Center (R&DC) is seeking information on companies that have the capability to detect, analyze, and document Very High Frequency (VHF) Data Link (VDL) signal performance and interference issues; perform analysis of AIS vessel traffic data to support deepwater port risk assessments for proposed Liquid Natural Gas (LNG) terminal sites; apply the National Marine Electronics Association (NMEA) 0183 v4.00 Interface Standard for AIS Shore Networks, including use of the NMEA 0183 v4.00 Transport Annotate and Group (TAG) Block methodologies; administer SUSE Enterprise Servers, Mail Servers, Mail List Servers, Web Servers, and File Transfer Protocol (FTP) Servers; develop complex Mathworks MATLAB models and solutions; to develop sophisticated automated analysis and web publishing applications for unattended operation, without intervention, running continuously 24x7, and the capability to develop and implement real-time research network capabilities and network applications for multiple platforms in both Java and C++ on Windows, Linux, and Apple operating systems. Of critical importance is the capability to understand the AIS development and architecture in order to modify, and efficiently adapt existing real-time AIS research network and it's components; to study and publish AIS reception site performance and AIS reception network operation; to perform real-time and historical AIS data processing and analyses directly applicable to supporting vessel incident investigations; to analyze and produce key data elements describing vessel traffic patterns, including volume and frequency of voyages near a deepwater port LNG site, and associated impact energy (kinetic force generated in the event of an allision/collision) for all vessel traffic, based upon 12 months of prerecorded AIS data; to administer automated system and data backups across the USCG R&DC AIS research network; to maintain an AIS multi-year data repository; to perform System Operation Center functions for, and research client management within, the R&DC AIS research network; to extend and operate the USCG R&DC AIS VDL performance simulation; to extend the existing R&DC AIS research network; and to support advanced AIS reception research. Responses to this market research shall include the following: (1) Describe company experience or history of the past three years and how your experience was obtained or developed relevant to the scope of this RFI including your business size status under NAICS Code 541511 (limit 3 pages); and (2) Describe the current capabilities that you have to meet the tasking requirements described in this RFI (limit 3 pages). Again, the only purpose of this RFI is to collect market research information. This announcement is not a research or development project. The purpose of this announcement is NOT to develop or evaluate potential new products, services or facilities, or to improve existing facilities for the purpose of meeting the specific performance capabilities or objectives. At this stage, the Government has no intention to further develop or produce any equipment from the information received. Information collected through this announcement will be reviewed by individuals from the USCG. Responses to this market survey shall be sent directly to: Helen.R.Nelson@uscg.mil with a copy to Lee.A.Luft@uscg.mil. Only electronic responses will be accepted and shall be submitted no later than 22 December 2008. NOTE: Proposals are not being solicited at this time. PHONE CALLS MAY NOT BE ACCEPTED, VOICEMAIL MESSAGES WILL NOT BE RETURNED, MAIL AND EMAILS RECEIVED WILL NOT BE RESPONDED TO.
05.26.2009 14:46
noaadata 0.42
Just released noaadata 0.42. This is
still research code and is far from perfect.
noaadata-py-0.42.tar.bz2
Changes:
Changes:
- msg 5 ETA was backwards. Reported by ESR
- msg 9 - Fixed speed over ground (SOG). Bug reported by Anders Olsson.
- msg 18 - Added the new class b flags from ITU 1371-3
- msg 19 - Maybe okay. Removed "broken" from the message name
- msg 24 Handcoded for AIS Class B targets
- aisutils/database.py - imprived track_lines, but really just moved to a simpler multi process setup
- aisutils/uscg.py - trap bogus arrivals from a grouchy N-AIS station
- ais-net-to-postgis - still not totally stable
- ais_build_sqlite.py - added class b message, better bit checking for corrupted messages, "R" is also for receive
- data/mmsi_prefix.sql: New: table of MMSI prefix country mapping
- doc/esr-review.tx: New: ESR review of noaadata AIS
- test_ais_server.py - New: feed AIS data from a file to anything that connects
- nais_pg_realtime_reaper.py - New: cleanup for live web sites driven by postgis
- nais2postgis.py - New: simpler replacement for feeding from an AIS server to postgis
- aisutils/rmc.py - New
05.25.2009 21:53
linux whiptail console interface
Ever wonder what drives those menus
that RPM and DEB packages use then you have to configure the system
for a new package? I noticed a "whiptail"
process running on a linux box... turns out this is the deal.
% whiptail --yesno "Is the sky blue?" 10 30I'm sure this is a curses based system, but it sure is easier to use.
05.24.2009 23:12
Memorial weekend gardening
Memorial Day weekend is the
traditional day to start planting in NH. I added a few more plants
to the garden today. I may have lost one basil from the early
planting that I did. Lots of seedlings are just getting
started.
My neighbor gave me 4 caster bean seedlings. Very cool, but this year they are all green instead of red.
And a NH sunset to finish off the Sunday...
My neighbor gave me 4 caster bean seedlings. Very cool, but this year they are all green instead of red.
And a NH sunset to finish off the Sunday...
05.23.2009 20:46
GeoRSS feed validation
Looks like Feed Validator doesn't
like my Healy Feed:
Feed Validator - Healy GeoRSS... still work to do.
05.23.2009 18:57
Healy at the dock in Seattle
Today, the USCGS Healy is at the dock
in Seattle. By request, I've altered the code to not show the
image. At the same time, I added a link to the location so that if
you click on the Longitude and a Latitude line, it takes you to the
Google Maps location (sorry, no icon on the map). This is mostly
for people using the GeoRSS feed in normal feed readers that don't
know about the Geo part (e.g. NetNewsWire and Vienna). Which news
readers understand GeoRSS?
05.22.2009 16:23
Nobeltec with a Class B transceiver
Today on the cruise to and from the
Isle of Shoals, I got to check out the Class B install of the
Cocheco from the perspective of seeing the Nauticast from the
shipboard side. Ben gave a quick go of adding the AIS device's
comm2 stream to Nobeltech and it just worked... actually, we
thought it wasn't working and had to get underway. Later Emily
pointed out that it was working just fine.
Nobeltec with AIS targets received via Class B transceiver:
Nobeltec with AIS targets received via Class B transceiver:
05.22.2009 15:55
Isle of Shoals
This morning, a bunch of us headed
out to the Isle of Shoals to look over sites for a tide station. We
looked over some of the pilings left over from an old pier. I took
a ton of pictures for documentation. Here is a small subset of the
images. This first location is right near a National Ocean Service
benchmark.
The seagulls are nesting out on the island. Two of us just missed an aerial bombardment.
The folks who work out on the island are getting ready for the students who are about to come out for summer session.
The seagulls are nesting out on the island. Two of us just missed an aerial bombardment.
The folks who work out on the island are getting ready for the students who are about to come out for summer session.
05.21.2009 14:55
data.gov
US
Federal Government Launches Data.gov [slashdot] I did a quick
search for NOAA in data.gov and came
up with just this...
05.21.2009 14:45
A first RPM spec file
Now that I've got a CentOS 5.3 box
that I'm trying to configure, it's time for me to finally learn how
to create RPM packages for Linux. This has been on my "to do" list
since 1999. I haven't mastered the topic, but at least I can place
a file on the disk and have it be under control of the package
manager. The RPM spec file is similar yet very different than fink
info files. I used these references for figuring it out: The Fedora
Project's
Chapter 8. Creating RPMs: An Overview and
GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF (which sadly is a
secured pdf).
For this project, I have a tar that consists just of "example/example.jar". This is a java archive as such can run on any platform, so you will see "noarch" below.
First I setup my build environment:
For this project, I have a tar that consists just of "example/example.jar". This is a java archive as such can run on any platform, so you will see "noarch" below.
First I setup my build environment:
% echo "%_topdir /home/schwehr/rpmbuild" > .rpmmacros % mkdir -p ~/rpmbuild/{BUILD,RPMS,S{OURCE,PEC,RPM}S}I then put my tar in ~/rpmbuild/SOURCES and created ~/rpmbuild/SPECS to look like this:
Summary: Example rpm spec file Name: example Version: 1.3.0 Release: 1 License: Proprietary Group: Applications/Network Source: %{name}-%{version}.tar.bz2 URL: http://example.org Buildroot: %{_tmppath}/%{name}-root %description Put a detailed description of the package here. %prep %setup -q %build echo "Nothing to build" %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr/share/java install -c -m 755 example.jar $RPM_BUILD_ROOT/usr/share/java/ %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) /usr/share/java %changelog * Thu May 21 2009 Kurt Schwehr Initial attempt at creating a rpmThen I built and installed my rpm:
% rpmbuild -ba --target noarch SPECS/example.spec % sudo rpm -i RPMS/noarch/example-1.3.0-1.noarch.rpm % ls /usr/share/java/example.jar /usr/share/java/example.jarThere is a lot more that I need to figure out. I'd like to install documentation files and setup a config file. I'd like to do this kind of thing for a number of data logging processes and have init scripts that kick off the appropriate daemons.
05.21.2009 13:25
USGS YoNav II
The USCG has it's own survey planning
tool for Windows: YoNav
David Finlayson just put a newer version up here and mentioned it on the mbsystem mailing list:
http://walrus.wr.usgs.gov/ftp/pub/users/davidf/YoNavII/
I didn't have much time to try out the software, but here are some quick screen shots...
David Finlayson just put a newer version up here and mentioned it on the mbsystem mailing list:
http://walrus.wr.usgs.gov/ftp/pub/users/davidf/YoNavII/
We at the USGS Coastal and Marine Geology group have a fully featured survey planning and operations tool called YoNav. It is basically a drop in replacement for WinFrog or HyPack (well, the survey-centric stuff).
I didn't have much time to try out the software, but here are some quick screen shots...
05.20.2009 14:56
MISLE / Marine Casualy and Polution Data for Researchers
In 2006, I got a CD of this data and
created a
Google Earth visualization of Marine Causualties from 2002 to
2006. This data has moved around on the USCG web sites and the
URL's are generally really crazy. I finally found the latest home
of this data from this page:
However, the data urls are a bit more manageable.
Summary: The Marine Casualty and Pollution Data files provide details about marine casualty and pollution incidents investigated by Coast Guard Offices throughout the United States. The database can be used to analyze marine accidents and pollution incidents by a variety of factors including vessel or facility type, injuries, fatalities, pollutant details, location, and date. The data collection period began in 1982 for marine casualties and 1973 for polluting incidents, and is ongoing. Documentation includes entity and attribute descriptions along with suggested solutions to general marine pollution, vessel casualty, and personnel injury and death questions.
However, the data urls are a bit more manageable.
- 19xx-2001 - http://marinecasualty.com/data/MCDATADISC1.zip
- 2002-2009 - http://marinecasualty.com/data/MCDATADISC2.zip [64 MB]
05.20.2009 13:44
Another Healy Science image, but with the Aloftcon Camera
Just because the healy is in an
amazing bit of country...
05.19.2009 19:41
Healy ship track and science instrument reports
I'm just putting the finishing
touches on my tool that parses the USCGC Healy
science reports that come out hourly. I output a placemark for each
report that summarizes what I think the key values are from the
over 100 NMEA and SAMOS strings that are in each report. I have to
handle the case where many of the instruments are off before I can
release the live visualization. It will be nice for those of us
back at CCOM this year to have more of a view into the cruise in
real time.
Here are the instrument summaries. It's fun to see the multibeam transition from shallow water (70 meters) to deep water (3700 meters).
I've been experimenting with HSV color space and changes in track width based on what Ben Smith did for his VOS Google Earth visualization. I've managed to make some really horrible color schemes, but this one seems okay.
An example of one popup table:
USCGC HEALY (WAGB-20)
Healy Science Operations
Healy Cruise Track
Healy in Google Earth
Here are the instrument summaries. It's fun to see the multibeam transition from shallow water (70 meters) to deep water (3700 meters).
I've been experimenting with HSV color space and changes in track width based on what Ben Smith did for his VOS Google Earth visualization. I've managed to make some really horrible color schemes, but this one seems okay.
An example of one popup table:
USCGC HEALY (WAGB-20)
Healy Science Operations
Healy Cruise Track
Healy in Google Earth
Field | Value | Units |
---|---|---|
UTC time | 2009-05-14 01:30:01 | UTC |
Longitude | -166.315 W | ° |
Latitude | 53.542 N | ° |
Heading | 233.1821 | ° True |
Speed over ground | 0.1 | knots |
Water Depth | None | m |
Sea temp | 7.972 | ° C |
Air Temp | 11.09 | ° C |
Humidity | 50.04 | % |
Presure | 1009.02 | millibar |
Precipitation | 0.12 | mm |
05.19.2009 11:03
GNUplot from sqlite3 using plot special-filename
I while back, I requested a new
gnuplot feature:
sql queries (e.g. sqlite) or some sort of more direct way to
access sqlite without dropping temporary files on the disk. Juergen
was kind enough to point me to "help plot special-filename" in
gnuplot. It isn't totally what I was thinking, but it is definitely
much better than what I had before. One drawback is that this is
awefully hard to debug what is going wrong... turned out that I've
got NULLs in my depth values when there is not CTR NMEA report from
the Healy.
I was really hoping to just transition to matplotlib, but I keep coming back to gnuplot.
% gnuplot gnuplot> set term x11 # Aquaterm doesn't allow rotation with splots gnuplot> plot '< sqlite3 healy.db3 "SELECT lat,-depth FROM healy_summary WHERE depth IS NOT NULL;" | tr "|" " "' t 'depth'
gnuplot> splot '< sqlite3 healy.db3 "SELECT lon,lat,-depth FROM healy_summary WHERE depth IS NOT NULL;" | tr "|" " "' t 'depth'
I was really hoping to just transition to matplotlib, but I keep coming back to gnuplot.
05.18.2009 16:10
USCG's National Technical Means - another posibility
I realized that I left out one of the
possible mechanisms for vessel tracking when
I wrote about the USCG's "National Technical Means" for
tracking ships. Perhaps this is what they meant...
America's Waterways Watch needs you [Coast Guard News]
America's Waterways Watch needs you [Coast Guard News]
... America's Waterways Watch (AWW) is the U.S. Coast Guard's "neighborhood watch" program, which enlists the support of the public to report suspicious activity on or near the water. Those participating in AWW serve as the eyes and ears of the Coast Guard and its law enforcement partners, when agency resources are not present. ...AWW
05.18.2009 11:18
mobile maritime applications - tides, charts, and AIS
Last week there was much discussion
about iPhone applications for mariners and this morning, I saw Capt
Ben Smith looking at tides on his Nokia N800. He was kind enough to
let me share a photo of the device. This is a port of XTides called
gtktide
Last week, the folks at NOAA said that in recent months, two thirds of their downloads of NOAA raster nautical charts (RNC) are coming from the iPhone via the iNavX application. This little application will even display AIS targets.
I encourage developers of mobile applications to look for more ideas in the maritime domain! Now we just need the iShipScience application that monitors all the science systems on UNOLS vessels.
And... the iPhone has a tide application too... TideGraph
And yet I don't have an iPhone, gPhone, or a Nokia N800... I'm definitely falling behind the leading edge.
Last week, the folks at NOAA said that in recent months, two thirds of their downloads of NOAA raster nautical charts (RNC) are coming from the iPhone via the iNavX application. This little application will even display AIS targets.
I encourage developers of mobile applications to look for more ideas in the maritime domain! Now we just need the iShipScience application that monitors all the science systems on UNOLS vessels.
And... the iPhone has a tide application too... TideGraph
And yet I don't have an iPhone, gPhone, or a Nokia N800... I'm definitely falling behind the leading edge.
05.18.2009 07:57
Garden started
This year's garden is just underway.
I started last weekend, which is early for our area. It looks like
I will have to tent things tonight as it is supposed to get down to
36F tonight.
Yeah, it's a weed in the grass, but they are still pretty.
Mystery bulbs... Thank you to who ever planted these in the yard:
Yeah, it's a weed in the grass, but they are still pretty.
Mystery bulbs... Thank you to who ever planted these in the yard:
05.17.2009 07:51
Fixing Adium AIM to work again
Yesterday, I was getting frustrated
that AOL Instant Messanger (AIM) wasn't working in Adium (but Yahoo was
okay). This is import for work. I tried switching back to iChat,
but that was broken too. Monica set me straight... you have to
change the port from 5190 to 80 in the Accounts Preferences.
05.16.2009 06:22
GAO Report on the sad state of the GPS satellite constellation
A large number of people were buzzing
about this GOA report at Hydro. This may be a big boost
manufacturers that produce GPS + GLONAS devices. GPS
Accuracy Could Start Dropping In 2010 [slashdot]
I have also heard several peope worry about short periods of degraded service from the next suns spot maximum.
Global Positioning System: Significant Challenges in Sustaining and Upgrading Widely Used Capabilities [gao.gov]
I have also heard several peope worry about short periods of degraded service from the next suns spot maximum.
Global Positioning System: Significant Challenges in Sustaining and Upgrading Widely Used Capabilities [gao.gov]
The Global Positioning System (GPS), which provides positioning, navigation, and timing data to users worldwide, has become essential to U.S. national security and a key tool in an expanding array of public service and commercial applications at home and abroad. The United States provides GPS data free of charge. The Air Force, which is responsible for GPS acquisition, is in the process of modernizing GPS. In light of the importance of GPS, the modernization effort, and international efforts to develop new systems, GAO was asked to undertake a broad review of GPS. Specifically, GAO assessed progress in (1) acquiring GPS satellites, (2) acquiring the ground control and user equipment necessary to leverage GPS satellite capabilities, and evaluated (3) coordination among federal agencies and other organizations to ensure GPS missions can be accomplished. To carry out this assessment, GAO's efforts included reviewing and analyzing program documentation, conducting its own analysis of Air Force satellite data, and interviewing key military and civilian officials. It is uncertain whether the Air Force will be able to acquire new satellites in time to maintain current GPS service without interruption. If not, some military operations and some civilian users could be adversely affected. (1) In recent years, the Air Force has struggled to successfully build GPS satellites within cost and schedule goals; it encountered significant technical problems that still threaten its delivery schedule; and it struggled with a different contractor. As a result, the current IIF satellite program has overrun its original cost estimate by about $870 million and the launch of its first satellite has been delayed to November 2009--almost 3 years late. (2) Further, while the Air Force is structuring the new GPS IIIA program to prevent mistakes made on the IIF program, the Air Force is aiming to deploy the next generation of GPS satellites 3 years faster than the IIF satellites. GAO's analysis found that this schedule is optimistic, given the program's late start, past trends in space acquisitions, and challenges facing the new contractor. Of particular concern is leadership for GPS acquisition, as GAO and other studies have found the lack of a single point of authority for space programs and frequent turnover in program managers have hampered requirements setting, funding stability, and resource allocation. (3) If the Air Force does not meet its schedule goals for development of GPS IIIA satellites, there will be an increased likelihood that in 2010, as old satellites begin to fail, the overall GPS constellation will fall below the number of satellites required to provide the level of GPS service that the U.S. government commits to. Such a gap in capability could have wide-ranging impacts on all GPS users, though there are measures the Air Force and others can take to plan for and minimize these impacts. In addition to risks facing the acquisition of new GPS satellites, the Air Force has not been fully successful in synchronizing the acquisition and development of the next generation of GPS satellites with the ground control and user equipment, thereby delaying the ability of military users to fully utilize new GPS satellite capabilities. Diffuse leadership has been a contributing factor, given that there is no single authority responsible for synchronizing all procurements and fielding related to GPS, and funding has been diverted from ground programs to pay for problems in the space segment. DOD and others involved in ensuring GPS can serve communities beyond the military have taken prudent steps to manage requirements and coordinate among the many organizations involved with GPS. However, GAO identified challenges to ensuring civilian requirements and ensuring GPS compatibility with other new, potentially competing global space-based positioning, navigation, and timing systems.
05.15.2009 17:12
Norfolk - end of US Hydro
US Hydro is over. But I have a couple
more pictures to share. First, one of the dry docks:
Brian and I found one High Speed Craft (HSC) in our work on the last paper. It is surprising to see this military vessel broadcasting AIS in the clear when so many other vessels only use blue force encrypted AIS when in the harbor.
Heading home...
Brian and I found one High Speed Craft (HSC) in our work on the last paper. It is surprising to see this military vessel broadcasting AIS in the clear when so many other vessels only use blue force encrypted AIS when in the harbor.
sqlite> SELECT userid,imonumber,callsign,name,shipandcargo, dimA+dimB AS width ,dimC+dimD AS length, destination FROM shipdata WHERE userid = 369970121 LIMIT 1; UserID IMOnumber callsign name shipandcargo width length destination 369970121 0 25MPB01 GUARDIAN 40 25 6 CHESAPEAKE LIGHTI'm not sure if this is the Guardian or not. Anyone care to confirm or refute the identify of this beast?
Heading home...
05.15.2009 13:56
PostGIS book!
I consider this a must have book for
the work that we do! I have been waiting for this book to come out
for quite a while. I can't wait for it to finish.
PostGIS in Action by Regina O. Obe and Leo S. Hsu.
PostGIS in Action by Regina O. Obe and Leo S. Hsu.
05.14.2009 08:49
Google Earth - Global ship tracks
David Sandwell has been working to
produce a Google Earth visualization that shows the ship tracks
(grey dots) that go into his global data products. With this kind
of visualization in hand, ocean mappers can make sure to cover new
ground when transiting areas. Be patient when viewing these kmz's.
They pull quite a number of images from David's server. Some areas
we as a community keep mapping over and over, while not far away,
the sea floor could use some ensonification.
In this image you can see the great coverage from the UNH Law of
the Sea cruise and other near shore mapping projects on the US East
Coast, where as out in the basin, the coverage gets quite
sparse.
If you do a "Get Info" on the kmz, you will see this description text:
If you do a "Get Info" on the kmz, you will see this description text:
SEAFLOOR DEPTH - Colors and 500m contours represent variations in seafloor depth (bathymetry). These data provide the basis for 90% of the ocean data shown in Google Earth. Small dots show the locations of the deeper water soundings. In areas where no depth soundings are available, the seafloor depth is a scaled version of gravity anomaly derived from satellite altimetry. The scale factor varies with a number of parameters including sediment thickness and mean ocean depth. The details of this bathymetry prediction process are described in two publications [Smith and Sandwell, 1994; Smith and Sandwell, 1997]. http://topex.ucsd.edu/sandwell/publications/59.pdf http://topex.ucsd.edu/sandwell/publications/74.pdf This particular data set includes 290 million, depth soundings compiled and edited by investigators at SIO, NOAA, NGA, U.S. Navy, and GEBCO. The details are included in the following publication: http://topex.ucsd.edu/sandwell/publications/124_MG_Becker.pdf A more general description of seafloor bathymetry and plate tectonics can be found at: http://topex.ucsd.edu/sandwell/publications/119.pdf DATA ACCESS - Gridded data and raw soundings are available at: http://topex.ucsd.edu/WWW_html/srtm30_plus.html GRAPHICS - Generic Mapping Tools (GMT) was used to generate the colored contour maps for direct input into Google Earth http://gmt.soest.hawaii.edu/ MISSING DATA AND OTHER COMMENTS - If you see deep ocean data that are missing from this compilations find errors or have other comments, please contact David T. Sandwell, dsandwell@ucsd.edu.Note that these visualizations show the results of some new code in GMT that outputs KML!
05.13.2009 17:49
More ship based lidar
Monica recently found
LIDAR view of the Golden Gate Bridge by CSUMB. A while
back, I used some great data from this same group to create my
La Jolla
2004 demo.
05.13.2009 11:05
Cocheco's Class B transceiver in ERMA
The R/V Cocheco is heading out for
work today and this is the first time that I've plotted up its
position
Today is the Portsmouth response drill. The CRRC Test 1 vessel is heading up the Cocheco river as a part of those operations.
Today is the Portsmouth response drill. The CRRC Test 1 vessel is heading up the Cocheco river as a part of those operations.
05.12.2009 12:08
bag2kmlbbox
I've just got my first draft of
bag2kmlbbox working. This is a script that reads the metadata in a
Bathymetric Attributed Grid and writes out the bounding box and
puts the metadata in a placemark. Lots more to do, but it gets the
idea across. Code and improvements will be forthcoming.
05.12.2009 05:52
Healy in Dutch Harbor
It looks like when the Healy is in
port, it shuts off something that prevents GPS data from getting to
the Aloftcon camera. No GPS data, but this is a great short of
Dutch Harbor, AK.
05.11.2009 14:22
NOAA Swath Vessel
We had a good Chart of the Future
meeting this morning with over 100 people attending. I'm now
sitting in the Survey to Chart meeting (aka Ping to Chart).
This vessel will eventually be homeported in Newcastle, NH at the new UNH pier. NOAA Ship Ferdinand R. Hassler. Hopefully the ship builder will deliver the vessel to NOAA Dec 2009 or a few months after that.
For more photos, see: NOAA's SWATH Vessel - R/V Ferdinand R. Hassler, which will be homeported at the UNH research pier
This vessel will eventually be homeported in Newcastle, NH at the new UNH pier. NOAA Ship Ferdinand R. Hassler. Hopefully the ship builder will deliver the vessel to NOAA Dec 2009 or a few months after that.
For more photos, see: NOAA's SWATH Vessel - R/V Ferdinand R. Hassler, which will be homeported at the UNH research pier
05.09.2009 22:40
Class B visualization
My first B geospatial visualization.
This is CRRC Test 1 viewed in ERMA with multibeam bathymetry and
OpenStreetMaps.
05.09.2009 17:34
Finally a Class B AIS Message 19 that decodes correctly
I logged 0.5 GB of AIS NMEA messages
and finally got a working message 19 ('C') for a Class B device.
Here is the luck winner:
% ./ais_msg_19.py -d '!AIVDM,1,1,,B,C5N3SRgPEnJGEBT>NhWAwwo862PaLELTBJ:V00000000S0D:R220,0*0B,x403022,b2003669952,1241898589' b_pos_and_shipdata_broken: MessageID: 19 RepeatIndicator: 0 UserID: 367059850 Spare: 0 SOG: 8.7 PositionAccuracy: 0 longitude: -88.8103916667 latitude: 29.543695 COG: 335.9 TrueHeading: 511 TimeStamp: 46 Spare2: 0 name: CAPT.J.RIMES shipandcargo: 70 dimA: 5 dimB: 21 dimC: 4 dimD: 4 fixtype: 1 RAIM: False DTE: 0 Spare3: 0
05.09.2009 17:08
Class B static reports
I went ahead and coded msg 24 by
hand. Not the most fun, but it's not too much work. I just created
a fluffy database, so a single simple query will not be able to get
a complete report for a Class B device. Here is decoding the two
different types of the class b static data:
It does look the mothership should generally be distinguishable from valid lengths. However, the first time someone puts in a really large DimA or a mothership value under 200000000, this will break. I just stored the values decode both ways.
Here is what the database table looks like:
% ais_msg_24_handcoded.py -d '!AIVDM,1,1,,B,H5NHcTP<51@4TrM>10584@U<D00,2*77,x337805,b003669710,1241895000' b_staticdata: MessageID: 24 RepeatIndicator: 0 UserID: 367405970 partnum: 0 name: CAPTAIN`S PARADISE % ais_msg_24_handcoded.py -d '!AIVDM,1,1,,B,HU2K5NTn13BijklG44oppk103210,0*06,s23294,d-114,T44.21624911,x731910,r13RSMT1,1241894986' b_staticdata: MessageID: 24 RepeatIndicator: 2 UserID: 338085242 partnum: 1 shipandcargo: 54 vendorid: ACR1234 callsign: WDD7883 dimA: 8 dimB: 3 dimC: 2 dimD: 1 mothership: 16789633 spare: 0I've started work on the database entries. My new network to database tool always deletes previous entries so that my database size doesn't get out of hand. Here is a query on the database. You can see that for most vessels I have both 0 (A) and 1 (B) reports:
% SELECT repeatindicator AS rpt, userid, partnum AS prt, name, \ shipandcargo AS shp, callsign, vendorid AS vdr, dima,dimb,dimc,dimd,mothership FROM b_staticdata ORDER BY userid LIMIT 20; rpt | userid | prt | name | shp | callsign | vdr | dima | dimb | dimc | dimd | mothership =====+===========+=====+=====================+=====+==========+=========+======+======+======+======+============ 0 | 1126643 | 1 | | 52 | WDA4860 | SIMRAD | 15 | 59 | 15 | 16 | 31699920 0 | 1126643 | 0 | MIRANDA PAIGE | | | | | | | | 0 | 111287800 | 0 | ALLISON RACHEL | | | | | | | | 0 | 111287800 | 1 | | 52 | WDA4860 | SIMRAD | 10 | 60 | 17 | 15 | 21218383 0 | 111737900 | 0 | ELIZABETH BROWN | | | | | | | | 0 | 111737900 | 1 | | 52 | WDA4860 | SIMRAD | 20 | 50 | 15 | 16 | 42148816 0 | 118529631 | 0 | RALPH HENRY | | | | | | | | 0 | 118529631 | 1 | | 52 | WDA4860 | SIMRAD | 10 | 60 | 15 | 16 | 21218256 0 | 316001076 | 0 | DEEP COVE LIFEBOAT | | | | | | | | 0 | 316001076 | 1 | | 51 | AUX2 | ACR1234 | 3 | 5 | 1 | 1 | 6312001 0 | 316007771 | 0 | MAXIMUS | | | | | | | | 0 | 316007771 | 1 | | 0 | BW | | 8 | 5 | 2 | 2 | 16797826 0 | 316008039 | 1 | | 37 | VG9188 | ACR1234 | 10 | 8 | 3 | 3 | 21004483 0 | 316008039 | 0 | WINESK | | | | | | | | 0 | 316008045 | 0 | EXPLORATHOR EXPRESS | | | | | | | | 0 | 316008045 | 1 | | 60 | | COMAR | 7 | 7 | 2 | 2 | 14708866 0 | 316008918 | 1 | | 36 | CFN5368 | | 7 | 8 | 2 | 2 | 14712962 0 | 316008918 | 0 | PAIKEA MIST | | | | | | | | 0 | 316009106 | 1 | | 37 | CFN4013 | COMAR | 11 | 0 | 2 | 2 | 23068802 0 | 316009106 | 0 | S/V SILVERHEELS III | | | | | | | |It's pretty obvious that the requirement to have vendors do the install is still leading to invalid MMSI entries. Also, I thought from talking to people who are on the AIS working groups that the VendorID was supposed to be a unique ID for the actual device like an Ethernet MAC address. This clearly is not the case. Here are the VendorID's I've seen from about a 1/2 hour of traffic:
% SELECT DISTINCT(vendorid) FROM b_staticdata; vendorid ========== ACR1234 COMAR DYACHT FEC0001 NAVICO SHID@AE SHID@BA SHID@CG SHID@CH SIMRAD TRANSAS TRUEHDG WESTMARThe fun part is with the SHID... values. I think that the '@' character is generally considered the end of string character. I'm doing a .rstrip(' @'), but probably I should do a find and truncate with the first '@', but the spec is unclear if the "@??" is actually a part of the vendor id.
It does look the mothership should generally be distinguishable from valid lengths. However, the first time someone puts in a really large DimA or a mothership value under 200000000, this will break. I just stored the values decode both ways.
Here is what the database table looks like:
ais=# \d b_staticdata Table "public.b_staticdata" Column | Type | Modifiers =================+=============================+============================================================ key | integer | not null default nextval('b_staticdata_key_seq'::regclass) messageid | integer | repeatindicator | integer | userid | integer | partnum | integer | name | character varying(20) | shipandcargo | integer | callsign | character varying(7) | vendorid | character varying(7) | dima | integer | dimb | integer | dimc | integer | dimd | integer | mothership | integer | spare | integer | cg_r | character varying(15) | cg_sec | integer | cg_timestamp | timestamp without time zone | Indexes: "b_staticdata_pkey" PRIMARY KEY, btree (key)
05.09.2009 15:30
Class B AIS design
Update 2009-08-24: Marcus Akesson
wrote me about message 19. His explanation makes sense.
Then comes message 24 - the Class B static message (starts with 'H'). It comes in two flavors, so I have to write a custom parser (the red square around the part number. And how am I supposed build the database to display these? I have the same complaint about how we built the met-hydro and area notice messages. We keep adding more layers of message addressing and these layers are not the same for all messages.
The VendorID as a string is not good. Ethernet has done a number only scheme for a very long time that works. Having a registry of assigned numbers is not a hard thing to do.
Also, notice that the dimension field can be either the size values or the mmsi of the "mother ship" and there is no flag to say which. I have to look at the values and decided which it is. The document gives no guidance to seeing which type it is and there may well be ambiguous values. They could have easily used one of the 6 spare bits to specify which value it is. I am going to assume that the dimension is the most common case and just hard code it in for now.
Looking at the Class A and B messages, I really wish that Class B just used the Class A messages with the same restrictions as it has now with transmit frequence and power.
But, with Carrier Sense, msg 19 was not possible to use, since its multislot. Instead, msg 24 was added. ... So that's why You don't see any msg19, because they are not transmitted. There is one exception, if a base station interrogates a ClassB device and reserves timeslots for it, then it may transmit a msg19.I'm working through decoding Class B AIS messages. I have to say that the design is not good. I have yet to find a valid message 19 (first letter 'C'). All the packets that I've recorded either have to many or two few bits. There must be a high probability that these two slot messages are getting stepped on, plus they are going out with only 2 watts from antennas that are much lower down compaired to large vessels with Class A.
Then comes message 24 - the Class B static message (starts with 'H'). It comes in two flavors, so I have to write a custom parser (the red square around the part number. And how am I supposed build the database to display these? I have the same complaint about how we built the met-hydro and area notice messages. We keep adding more layers of message addressing and these layers are not the same for all messages.
The VendorID as a string is not good. Ethernet has done a number only scheme for a very long time that works. Having a registry of assigned numbers is not a hard thing to do.
Also, notice that the dimension field can be either the size values or the mmsi of the "mother ship" and there is no flag to say which. I have to look at the values and decided which it is. The document gives no guidance to seeing which type it is and there may well be ambiguous values. They could have easily used one of the 6 spare bits to specify which value it is. I am going to assume that the dimension is the most common case and just hard code it in for now.
Looking at the Class A and B messages, I really wish that Class B just used the Class A messages with the same restrictions as it has now with transmit frequence and power.
05.08.2009 16:55
NTP for Mac OSX
A while back, I posted a comment on
Mac OSX Hints to this post: 10.5:
Back to My Mac fails to start due to incorrect time
Rob Griffiths has followed up with a Macworld blog post: How to use a pool of time servers. Rob is kind enough to credit me down at the bottom of the post:
Rob Griffiths has followed up with a Macworld blog post: How to use a pool of time servers. Rob is kind enough to credit me down at the bottom of the post:
Thanks to Mac OS X Hints reader Kurt Schwehr for today's tip.Also, to restart ntp on the mac from the command line (at least in 10.5):
sudo launchctl stop org.ntp.ntpd sudo launchctl start org.ntp.ntpd
05.08.2009 14:34
Spring - Tide station work
I had a few minutes between finishing
my work and when the crew scouting tide stations got back, so I
grabbed some pictures.
05.08.2009 10:52
Neptune LNG - Marine Mammals
Neptune LNG Seeks One-Year Authorization for Incidental
"Harassment" of Marine Mammals [LNG Law Blog]
Federal Register E9-10681.pdf
Federal Register E9-10681.pdf
NMFS received an application from Neptune LNG, L.L.C. (Neptune) for take of marine mammals, by Level B harassment, incidental to construction and operation of an offshore liquefied natural gas (LNG) facility in Massachusetts Bay. Under the Marine Mammal Protection Act (MMPA), NMFS is requesting comments on its proposal to issue an incidental harassment authorization (IHA) to Neptune to incidentally take, by harassment, small numbers of several species of marine mammals during construction and operations of the LNG facility for a period of 1 year. ...
05.08.2009 10:22
Talk today at UNH - Margaret Leinen
CCOM is hosting a very exciting talk
today in Kingsbury N101 (not in the CCOM/Chase
building):
SPECIAL SEMINAR ANNOUNCEMENT Friday, May 8th, 2009 3:00 p.m., Kingsbury N101 Geoengineering as a climate change mitigation strategy: What will we need to understand? by Dr. Margaret Leinen, Founder and Chief Scientist of The Climate Response Fund All are welcome to attend Sponsored by CCOM/JHC, NRESS and EOS Dr. Margaret Leinen is the founder and Chief Scientist at The Climate Response Fund, a nonprofit organization created to support efforts that explore innovative solutions to the global climate crisis. While there is a clear need for extensive reductions in greenhouse gas (GHG) emissions, policymakers have found it extremely difficult to negotiate meaningful agreements. The magnitude of the reductions needed challenge our technical ability to replace fossil fuels, they highlight the inequities between the developed and developing world, and they will inevitably impact economies worldwide. The Climate Response Fund is driven by the notion that policy initiatives alone will not be sufficient for preventing the serious consequences of climate change from becoming reality. The scientific community has identified a variety of alternative approaches that involve large-scale intervention in the climate system, either through removal of CO2 from the atmosphere or increased reflection of incoming sunlight. Despite their potential promise, investment in research in these areas has been small and the controversial nature of such efforts has led to resistance. Nevertheless, given the magnitude of the threat posed by climate change, there is a need to consider all options available, with consideration that the risks of inaction will be severe. In her presentation, Dr. Leinen will discuss a range of possible geoengineering approaches that hold promise and share her perspectives on the steps needed to carefully evaluate their relative effects as well as the overall role of humans as architects of planet Earth. In addition to her efforts with The Climate Response Fund, Dr. Leinen has been the Chief Science Officer at Climos, a company dedicated to using natural processes to remove carbon from the atmosphere and assist companies in reducing their carbon footprints and becoming carbon neutral. Prior to joining Climos, Dr. Leinen was the Director of the Geosciences Directorate of the NSF from 2000 - 2006. Before serving at NSF, Dr. Leinen was Dean, Graduate School of Oceanography and Vice Provost for Marine and Environmental Programs at the University of Rhode Island. She was also Acting Dean, College of the Environment and Life Sciences. Leinen is a past president of The Oceanography Society. She served on the Board of Governors of the Joint Oceanographic Institutions, Inc., on the Board of Directors of the Bermuda Biological Station for Research and on and the Ocean Research Advisory Council. Leinen also served as the Vice Chair of the International Geosphere-Biosphere Programme and on the Board on Global Change of the National Research Council/National Academy of Sciences. She is a Fellow of the American Association for the Advancement of Science and the Geological Society of America. She currently serves on as a Board member for the National Ecological Observatory Network. She received a B.S. from the University of Illinois; M.S. from Oregon State University, and a Ph.D. in Geological Oceanography from the University of Rhode Island.
05.07.2009 15:17
Time zones with PostgreSQL
I haven't messed with anything other
than straight UTC data in PostgreSQL before now. Here are some
quick notes on using time zones. First, CURRENT_TIMESTAMP gives the
time right now and defaults to the local time zone.
SELECT CURRENT_TIMESTAMP; now ============================== 2009-05-07 15:03:50.233617-04 SELECT CURRENT_TIMESTAMP(2) AT TIME ZONE 'UTC'; timezone ======================== 2009-05-07 19:04:30.23Up until now, I have just been creating TIMESTAMP fields. Here is how to create a table with a timezone.
% CREATE TABLE foo (val INTEGER, ts TIMESTAMP WITH TIME ZONE DEFAULT now());Now, add a line with everything set to the default values:
% INSERT INTO foo DEFAULT VALUES;Now query the table in the default time zone and then ask for UTC.
% SELECT * FROM foo; val | ts =====+=============================== | 2009-05-07 15:06:46.585944-04 SELECT ts AT TIME ZONE 'UTC' FROM foo; timezone ============================ 2009-05-07 19:06:46.585944See this page for more: Date/Time Functions and Operators
05.06.2009 13:26
AIS Class B message
Andy M and I conpleted two more Class
B AIS installs this morning...
% ais_msg_18.py -d '!AIVDM,1,1,,A,B52KB8h006fu`Q6:g1McCwb5oP06,0*00' positionb: MessageID: 18 RepeatIndicator: 0 UserID: 338088483 Reserved1: 0 SOG: 0 PositionAccuracy: 0 longitude: -70.8111966 latitude: 43.11555833 COG: 171.6 TrueHeading: 511 TimeStamp: 20 RegionalReserved: 0 Spare: 0 RAIM: True CommStateSelector: 1 CommState: 393222
05.06.2009 07:31
CentOS 5.3 and python
Minor critique on the latest CentOS:
% cat /etc/redhat-release CentOS release 5.3 (Final)I would hope for at python 2.5.x, but it is still back at 2.4:
% python Python 2.4.3 (#1, Jan 21 2009, 01:11:33) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information.There are a lot of things in 2.5 that make it much better than 2.4. The migration path from 2.4 to 2.5 was pretty easy (unlike getting from 2.5 to 2.6).
05.05.2009 17:03
NMEA 4.0 encoded AIS
I just got my first exposure to NMEA
4.0 encoded AIS data...
\g:1-2-5624421,n:2281618,s:r003669959,c:1241544037*78\!AIVDM,1,1,,A,15N9wuUPAJJnNGrGV>8J983:0D04,0*23 \g:2-2-5624421,n:2281619*20\$ARVSI,r003669959,,246060,9999,-053,0*3F \g:1-3-60450,n:131065,s:r003669946,c:1241544038*4B\!AIVDM,2,1,9,A,55MwpAh000000000000<OCO;GF2222222222220k1H4,0*2C \g:2-3-60450,n:131066*10\!AIVDM,2,2,9,A,3140002P00000000000000000000,2*79 \g:3-3-60450,n:131067*10\$ARVSI,r003669946,9,172038.11029899,1429,-091,0*2C
05.04.2009 17:44
Linux server that refuses to reboot
Update 5/5: Val found this that
implies that a BIOS update would do it:
Can't reboot "intel 5400" based systems with FEDORA 10. Les
updated the BIOS and it still wouldn't reboot. We went to CentOS
5.3 and it reboots just fine. The other CCOM servers are pretty
much all CentOS, so this will make it easier for them to
admin.
We've got a linux server that I just upgraded to Ubuntu 9.04. When I rebooted, it hung then it tried to reboot the machine. I tried reinstalling the kernel and modutils. I also tried putting "blacklist iTCO_wdt" into /etc/modprobe.d/blacklist-watchdog to get rid of the watchdog as suggesting in bug report 218357. With no luck. This is an 8-core Xenon Dell Precision 5400 with Raid 1 on two .75 TB drives. I finally bit the bullet and tried making a custom kernel...
We are going to try to wipe the machine and start over with centos 5.3
Note: the machine will happily power off with "shutdown -h now". It just won't restart correctly.
We've got a linux server that I just upgraded to Ubuntu 9.04. When I rebooted, it hung then it tried to reboot the machine. I tried reinstalling the kernel and modutils. I also tried putting "blacklist iTCO_wdt" into /etc/modprobe.d/blacklist-watchdog to get rid of the watchdog as suggesting in bug report 218357. With no luck. This is an 8-core Xenon Dell Precision 5400 with Raid 1 on two .75 TB drives. I finally bit the bullet and tried making a custom kernel...
% sudo apt-get install wget git-core kernel-package fakeroot build-essential ncurses-dev % wget http://www.pair.lkams.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.2.tar.bz2 % tar xf linux-2.6.29.2.tar.bz2 % cd linux-2.6.29.2 % make menuconfig % make-kpkg clean % CONCURRENCY_LEVEL=10 fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers # Wait a while % cd .. % sudo dpkg -i linux-image-2.6.29.2-custom_2.6.29.2-custom-10.00.Custom_i386.deb % sudo dpkg -i linux-headers-2.6.29.2-custom_2.6.29.2-custom-10.00.Custom_i386.debAnd no luck... I built the kernel with CONFIG_X86_REBOOTFIXUPS set to yes, but that looks to not cover this machine.
We are going to try to wipe the machine and start over with centos 5.3
Note: the machine will happily power off with "shutdown -h now". It just won't restart correctly.
05.04.2009 13:11
proAIS software and the AIS-1000 from West Marine
I'm not too surprise to find that the
AIS-1000 from West Marine is basically the same system as what I
got with the ACR Nautcast AIS-300. The PCB boards look alike and
check out the book sequence messages...
ACR Nauticast:
The Comar and West Marine transceivers both come with the proAIS software for setting up the static data on the devices. proAIS is much more obvious when it comes to working with Class B transponders. Again, the GPS was able to lock up on satellites outside of the building, but can't from my office window.
ACR Nauticast:
$PSRT,001,,,***************************************34 $PSRT,001,,,Software Bootloader Ver 3*6E $PSRT,VER,,,,,,00001403*6E $PSRT,001,,,Booting main application*13 $PSRT,001,,,--- -----------------------------------*14 $PSRT,001,,,--- Class B AIS Transponder*16 $PSRT,001,,,--- *39 $PSRT,001,,,--- SW Ver 10.0.7.0 Dec 11 2007 15:30:43 *03 $PSRT,001,,,--- FPGA Ver 5 HW Ver unknown *4B $PSRT,001,,,--- Power requirements: 12V 6W *64 $PSRT,001,,,--- Compass safe distance: 0.5m *07 $PSRT,VER,,,00000000,007A16AC,00000005,0A000700 *48 $PSRT,001,,,--- Loading previous settings... *45 $GPTXT,01,01,02,ANTSUPERV=AC SD OD PDoS SR*0B $GPTXT,01,01,02,ANTSTATUS=OK*3BAnd now the AIS-1000 from West Marine:
$PSRT,001,,,***************************************34 $PSRT,001,,,Software Bootloader Ver 4.0 *57 $PSRT,001,,,--- Jul 4 2008 13:17:18 ---*54 $PSRT,VER,,,,,,00001403*6E $PSRT,001,,,Booting main application*13 $PSRT,001,,,--- -----------------------------------*14 $PSRT,001,,,--- Class B AIS Transponder *36 $PSRT,001,,,--- *39,rnrwais1,1241447967.05 $PSRT,001,,,--- SW Ver 10.0.9.0 Oct 17 2008 10:47:26 *18 $PSRT,001,,,--- FPGA Ver 5 HW Ver unknown *4B $PSRT,001,,,--- Power requirements: 12V 6W *64 $PSRT,001,,,--- Compass safe distance: 0.5m *07 $PSRT,VER,,,00000000,006B46F5,00000005,0A000900 *30 $PSRT,001,,,--- Loading previous settings... *45 $GPTXT,01,01,02,ANTSTATUS=OK*3B $GPTXT,01,01,02,ANTSUPERV=AC SD OD PDoS SR*0BIt looks like they have slightly different versions of the onboard software, but otherwise, they are the same.
The Comar and West Marine transceivers both come with the proAIS software for setting up the static data on the devices. proAIS is much more obvious when it comes to working with Class B transponders. Again, the GPS was able to lock up on satellites outside of the building, but can't from my office window.
05.04.2009 10:20
AIS Class B installs continued
Today, I'm working with the West
Marine AIS-1000 Class B transponder. 14 philips screws later...
There is a TI DSP chip inside.... the Fixed-Point
TMX320VC5502GZZ200.
Taking off the top reveals the connectors.
From Friday, here are the antennas being used on the Cocheco for AIS. In the yellow box is the starboard side marine VHF antenna that was already on the ship with the cabling aready run below. Andy M. added the dedicated GPS antenna shown in the red circle..
The cabling area before the AIS device was installed in the head.
Taking off the top reveals the connectors.
From Friday, here are the antennas being used on the Cocheco for AIS. In the yellow box is the starboard side marine VHF antenna that was already on the ship with the cabling aready run below. Andy M. added the dedicated GPS antenna shown in the red circle..
The cabling area before the AIS device was installed in the head.
05.01.2009 19:22
Configuring an ACR Nauticast Class B transceiver
Today I configured my first AIS Class
B device. As a research institution, we got an exemption so that we
can program our own class B devices. I believe we are still subject
to the devices being locked to an MMSI after being set. Today, I
was using an ACR Nauticast AIS-300 (P/N 2680). I first powered up
the unconfigured unit and this is what the unit responds with:
The NMEA traffic changes to look like this:
It's strange that in all these fields, the application allows you to type lower case letters, which AIS does not permit. It also lets you type sizes for A, B, C, and D with decimal places. Would be good to explain that only integer meter values are allowed. And meters should be made more obvious so that people know it's not feet.
For the call sign, I tried to leave it blank, but the interface forced one. I made a compromise of "NONE".
This is a research vessel, so I wasn't sure what class to make the vessel type. I also noticed that the interface restricted which types are allowed. I haven't read the whole class B specification to know if this is required. Also, the interface only shows 8 types at a time, making it hard to figure out what to do if you are not familar with the options.
Here is what I got when I set the static data:
In order to get more detailed information about what is wrong, you have to bring up the "Device Status" from the menu.
We then took the transceiver out to the ship and installed it (on the wall inside the head). One of the existing VHF antennas was not in use, so we only had to install another GPS antenna (for a count of 3). I then went over to my new receiver site in the new buildings at the UNH pier and found that I was receiving Class B position reports. The receiver isn't on the network yet, so it'll be a few days before I can show decoding a received class B packet.
$PSRT,001,,,***************************************34 $PSRT,001,,,Software Bootloader Ver 3*6E $PSRT,VER,,,,,,00001403*6E $PSRT,001,,,Booting main application*13 $PSRT,001,,,--- -----------------------------------*14 $PSRT,001,,,--- Class B AIS Transponder*16 $PSRT,001,,,--- *39 $PSRT,001,,,--- SW Ver 10.0.7.0 Dec 11 2007 15:30:43 *03 $PSRT,001,,,--- FPGA Ver 5 HW Ver unknown *4B $PSRT,001,,,--- Power requirements: 12V 6W *64 $PSRT,001,,,--- Compass safe distance: 0.5m *07, $PSRT,VER,,,00000000,007A16AC,00000005,0A000700 *48 $PSRT,001,,,--- Loading previous settings... *45 $GPTXT,01,01,02,ANTSUPERV=AC SD OD PDoS SR*0B $GPTXT,01,01,02,ANTSTATUS=OK*3B !AIVDO,1,1,,,B0000003wk?8mP=18D3Q3wv5kP06,0*1A !AIVDO,1,1,,,B0000003wk?8mP=18D3Q3wv5kP06,0*1A $AITXT,01,01,61,MMSI not programmed - TX disabled*31Unlike the Class A devices that I've used, this one will not transmit until it has an MMSI. I then fired up the windows LINK2AIS software from ACR and connected to the serial port.
The NMEA traffic changes to look like this:
$PSRT,010,,,000000000*04 $PSRT,LED,06*4E $PSRT,ADC,0100,0002,0072,0069,0255,0209,0194*4F $PSRT,SRM,01,02,@@@@@@@*0A !AIVDO,1,1,,,B0000003wk?8mP=18D3Q3wv5kP06,0*1A $AISSD,@@@@@@@,@@@@@@@@@@@@@@@@@@@@,000,000,00,00,1,AI*35 $PSRT,SRM,01,02,@@@@@@@*0A $AIVSD,037,00.0,0000,@@@@@@@@@@@@@@@@@@@@,000000,00,00,00,00*4F $PSRT,SNO,0008001196*50 $PSRT,SWF,10.0.7.0,05*76 $PSRT,010,,,000000000*04I also got alarms that my antenna wasn't hooked up correctly.
$AIALR,000000,001,V,A,AIS: Tx malfunction*72 $AIALR,000000,002,V,A,AIS: Antenna VSWR fault*2A $AIALR,000000,003,V,A,AIS: Rx channel 1 malfunction*24 $AIALR,000000,004,V,A,AIS: Rx channel 2 malfunction*20 $AIALR,000000,067,V,A,AIS: Noise threshold exceeded Chan A*4B $AIALR,000000,068,V,A,AIS: Noise threshold exceeded Chan B*47 $AIALR,000000,057,V,A,AIS: 12v alarm*39 $AIALR,000000,058,V,A,AIS: 6v alarm*03 $AIALR,000000,076,V,A,AIS: 3V3 alarm*19After a while, it also informed me that it had no position information. The GPS antenna was sitting in the window of my office, which is good enough for some GPS receivers, but not this one.
$AITXT,01,01,62,TX attempt failed (msg 18 no pos'n)*63 $AITXT,01,01,60,AIS: Internal GNSS not in use*28I then started into the process of filling out the "static data" for the transceiver.
It's strange that in all these fields, the application allows you to type lower case letters, which AIS does not permit. It also lets you type sizes for A, B, C, and D with decimal places. Would be good to explain that only integer meter values are allowed. And meters should be made more obvious so that people know it's not feet.
For the call sign, I tried to leave it blank, but the interface forced one. I made a compromise of "NONE".
This is a research vessel, so I wasn't sure what class to make the vessel type. I also noticed that the interface restricted which types are allowed. I haven't read the whole class B specification to know if this is required. Also, the interface only shows 8 types at a time, making it hard to figure out what to do if you are not familar with the options.
Here is what I got when I set the static data:
$PSRT,003,,,1*07 $PSRT,010,,,369970120*05 $PSRT,003,,,1*07 $PSRT,003,,,1*07 $AISSD,NONE@@@,R/V COCHECO@@@@@@@@@,007,004,03,01,1,AI*3B $PSRT,SRM,01,02,@@@@@@@*0A $AIVSD,056,00.0,0000,@@@@@@@@@@@@@@@@@@@@,000000,00,00,00,00*48 $PSRT,SNO,0008001196*50 $PSRT,SWF,10.0.7.0,05*76 !AIVDO,1,1,,,B5Pm;j03wk?8mP=18D3Q3wv5sP06,0*6B $PSRT,010,,,369970120*05Having the GPS in my office, the unit only showed the yellow "warning" light. In the LINK2AIS interface, this shows up at the bottom:
In order to get more detailed information about what is wrong, you have to bring up the "Device Status" from the menu.
We then took the transceiver out to the ship and installed it (on the wall inside the head). One of the existing VHF antennas was not in use, so we only had to install another GPS antenna (for a count of 3). I then went over to my new receiver site in the new buildings at the UNH pier and found that I was receiving Class B position reports. The receiver isn't on the network yet, so it'll be a few days before I can show decoding a received class B packet.
05.01.2009 07:19
MS Access - Degrees and Decimal Minutes to Decimal Degrees
I have what I think is a fairly
simple problem in MS-Access, yet I can't quite seem to figure out
how to do this. In a geospatial database, I would like to just
store decimal degrees in the database, but I would like to have a
form that allows entering either decimal degrees or ... degrees and
a separate decimal minutes (as you would see on a typical GPS
display).
I'm a beginner at MS-Access and I've got the 2002 version. I tried setting an Expression in the Expression Builder, but it seems that Access is unhappy that LatDeg and LatMin are not in the database.
Can anyone help me out here? I've got a LiveJournal post for comments...
I'm a beginner at MS-Access and I've got the 2002 version. I tried setting an Expression in the Expression Builder, but it seems that Access is unhappy that LatDeg and LatMin are not in the database.
Can anyone help me out here? I've got a LiveJournal post for comments...