@staticmethod
def snapshot_to_system(system, snapshot):
    """Convert a snapshot to a system object."""
    system_copy = system.copy()
    system_copy.order = snapshot.get('order', None)
    particles = system_copy.particles
    particles.pos = snapshot.get('pos', None)
    particles.vel = snapshot.get('vel', None)
    particles.vpot = snapshot.get('vpot', None)
    particles.ekin = snapshot.get('ekin', None)
    for external in ('config', 'vel_rev', 'top'):
        if hasattr(particles, external) and external in snapshot:
            setattr(particles, external, snapshot[external])
    return system_copy
