def METHOD_NAME(self, request):
    # print("ScanTestSource: Got request " + str(request))
    batch = Batch()
    # have the pixels encode their position
    for array_key, spec in request.array_specs.items():
        roi = spec.roi
        roi_voxel = roi // self.spec[array_key].voxel_size
        # print("ScanTestSource: Adding " + str(array_key))
        # the z,y,x coordinates of the ROI
        meshgrids = np.meshgrid(
            range(roi_voxel.begin[0], roi_voxel.end[0]),
            range(roi_voxel.begin[1], roi_voxel.end[1]),
            range(roi_voxel.begin[2], roi_voxel.end[2]),
            indexing="ij",
        )
        data = meshgrids[0] + meshgrids[1] + meshgrids[2]
        # print("Roi is: " + str(roi))
        spec = self.spec[array_key].copy()
        spec.roi = roi
        batch.arrays[array_key] = Array(data, spec)
    for graph_key, spec in request.graph_specs.items():
        # node at x, y, z if x%100==0, y%10==0, z%10==0
        nodes = []
        start = spec.roi.begin - (spec.roi.begin % Coordinate(100, 10, 10))
        for i, j, k in itertools.product(
            *[range(a, b, s) for a, b, s in zip(start, spec.roi.end, [100, 10, 10])]
        ):
            location = np.array([i, j, k])
            if spec.roi.contains(location):
                nodes.append(Node(id=coordinate_to_id(i, j, k), location=location))
        batch.graphs[graph_key] = Graph(nodes, [], spec)
    return batch