Lattice rules are equal weight numerical quadrature rules for the integration of periodic functions over the s-dimensional unit hypercube U-s = [0, 1)(s). For a given lattice rule, say Q(L), a set of points L (the integration lattice), regularly spaced in all of R(s), is generated by a finite number of rational vectors. The abscissa set for Q(L) is then P(Q(L))=L boolean AND U-s. It is known that P(Q(L)) is a finite Abelian group under addition module the integer lattice Z(s), and that QL(f) may be written in the form of a nonrepetitive multiple sum, [GRAPHICS] known as a canonical form, in which + denotes addition module Z(s). In this form, z(i) is an element of Z(S), m is called the rank and n(1), n(2),..., n(m) are called the invariants of Q(L), and n(i+1)\n(i) for i = 1,2,..., m-1 . The rank and invariants are uniquely determined for a given lattice rule. In this paper we provide a construction of a canonical form for a lattice rule Q(L), given a generator set for the lattice L. We then show how the rank and invariants of QL may be determined directly from the generators of the dual lattice L perpendicular to.