The function ground_motion_fields in hazardlib wants a SiteCollection instance, not just an iterable over sites. See my comment

  # XXX: do we really need a hazardlib SiteCollection?

Maybe is it is possible to change hazardlib to avoid a SiteCollection.