def METHOD_NAME(self):
    docker_client = docker.DockerClient.from_env()
    tick = time.time()
    extra_kws = {}
    if sys.platform.startswith('linux'):
        extra_kws['user'] = f'{os.getuid()}:{os.getgid()}'
    container_output = docker_client.containers.run(
        self.parent().docker_image,
        [
            'ruby',
            'resources/run_sampling.rb',
            '-p', self.cfg['project_directory'],
            '-n', str(self.n_datapoints),
            '-o', 'buildstock.csv'
        ],
        remove=True,
        volumes={
            self.buildstock_dir: {'bind': '/var/simdata/openstudio', 'mode': 'rw'}
        },
        name='buildstock_sampling',
        **extra_kws
    )
    tick = time.time() - tick
    for line in container_output.decode('utf-8').split('\n'):
        logger.debug(line)
    logger.debug('Sampling took {:.1f} seconds'.format(tick))
    destination_filename = self.csv_path
    if os.path.exists(destination_filename):
        os.remove(destination_filename)
    shutil.move(
        os.path.join(self.buildstock_dir, 'resources', 'buildstock.csv'),
        destination_filename
    )
    return destination_filename