Hi Jon,
Perhaps I have misunderstoond the question.... Isn't it equivalent for the unit cell to be expanded in real space so that the lattice points are compressed in reciprocal space? Just expand the structure to P1 and keep the atoms fixed in real space orthogonal angstrom co-ordinates. Like this it seems you can get the reciprocal space points whereever you want?
I think that's correct, but you need to decide how big to make the pseudo unit cell, and how to interpolate. I looked at the phaser code, where they have simple two-point interpolation, four-point and eight-point. We have cctbx.crystal.non_crystallographic_symmetry(), which uses cctbx.uctbx.non_crystallographic_unit_cell() to do the actual work, and cctbx.uctbx.non_crystallographic_unit_cell_with_the_sites_in_its_center() which moves the coordinates around. And we have cctbx.maptbx.non_crystallographic_eight_point_interpolation, implemented in cctbx/maptbx/eight_point_interpolation.h . Hope this helps. Ralf