    def parse_binary_data
      @node.xpath("./binaryDataArrayList/binaryDataArray").each do |bd|
        if bd.xpath("cvParam/@accession='MS:1000523'")
          # "64-bit float"
          decode_type = "E*"
        else
          # 32-bit float
          decode_type = "e*"
        end
        data = Base64.decode64(bd.xpath("binary").text)
        # compressed?
        if bd.xpath("cvParam/@accession='MS:1000574'")
           data = Zlib::Inflate.inflate(data)
        end
        # time or intensity data?
        if bd.xpath("cvParam/@accession='MS:1000595'")
          # parse the time units
          @time_unit = bd.xpath("cvParam[@accession='MS:1000595']")[0].attributes["unitName"].value
          @timepoint = data.unpack(decode_type)
        else
          @intensity = data.unpack(decode_type)
        end
      end
    end