130 likes | 243 Views
By Ben Jolitz. Specs, Data, and Web. Specs. Professional projects use specifications Ensures quality Ensures product does what it should. Example: “Speedy” Alice and “Solid” Bill Wrote eight page specification Hammered out what needs to be done Preliminary logic written up.
E N D
By Ben Jolitz Specs, Data, and Web
Specs • Professional projects use specifications • Ensures quality • Ensures product does what it should. • Example: “Speedy” Alice and “Solid” Bill • Wrote eight page specification • Hammered out what needs to be done • Preliminary logic written up. • Useful for future years, provides short walk through without pawing through manuals and PPTs.
Specs II • All programs written in Python. • Extendable • Easy to adapt • Other languages (C, Perl, VB) were rejected due to maintenance reasons.
Specs -> Program • Muon lifetime's logic was to search for a “start” trigger, find that trigger's end, and check the time index spacing between the first triggers “end” and the next ones “start”. • 3μs < Space < 10μs. • ADOM logic: • Find the number of “events” in two minute intervals. • Ignore x seconds of data
balloon.py .... tim = int(columns[0], 16) if tim < self.last_tim : self.rollover_time += 4294967296 .... if data_timestamp >= self.trigger_next_interval : print "interval %04d: triggers %04d [lines %d-%d]" % ( self.interval_count, self.trigger_count, self.interval_first_line, line_count-1) self.interval_first_line = line_count self.interval_count = self.interval_count + 1 self.trigger_count = 0 self.trigger_next_interval = self.trigger_next_interval + self.interval_time
lifetime.py ... if columns[1] == '80' : # trigger self.trigger = True self.trigger_time = data_timestamp if self.trigger : self.trigger_accumulator = self.trigger_accumulator + [columns] ... if self.trigger and columns[5] == '00' : self.trigger = False self.trigger_accumulator = []
Issues • ADOM balloon.py has a “dropout” mechanism to remove invalid lines or typed in commands. • Prints out dropouts along with line number • Assumes all valid data lines are 16 columns. • “Smiley face” • Help • Issue fixed by simply tracking down the false data lines using the other dropout prints to get an idea, delete by hand or by command piping.
Data Lore • ADOM experiment was carried out on 25 July, 2007 at around 11AM. • Muon life time has not been carried out yet, due to equipment issues.
Data Lore II • Cannot account for the count drop on ground. • Lowest point is 18mins for both experiments. • Coindicidence? • Time dependent error? • Ground Data had 6 dropouts. • Mainly commands ['DS'], ... • Aerial Data had ~162 dropouts. • Data lines that were “mangled” (repeating section, transmission error).
Data Lore III • Potential sources of error: • Power fluctuating somewhere? • ADOM transmitter encountering interference? • Changing altitude suddenly • The null-modem serial piece was not fastened in and slightly loose. • Tether may have brought around flex error because the setup was bouncing all over the place, due to lack of stabilizers. • ADOM's balloon did not reach 1000ft. • Lack of sufficient lift. • Winds
Web site • Developed on live CMF webserver • http://zbenjamin.telemuse.net/ • http://objectis.net • http://www.zope.org • Content kept on scipp server. • XHTML 1.0/CSS 2/JScript 1.5 • Ported over with browser “View HTML” and “Save as” • Full versions working perfectly on FF 1.5+, IE 7+, Opera, Safari. • Partial version working on IE 5.5, 6
Round up • Wrote specification • Good for later years as logic reference • Data format section good as long Qnet boards “speak” that format • Two programs: • Proven “balloon.py” program • Invoked by python balloon.py datafile.txt [secs to ignore] ([] optional) • Experimental “lifetime.py” program • Clean website supported by standards.