The RasterSampler currently doesn't work with ATL03 because it uses the extent_id to merge the result, but the ATL03 segments only have one extent_id per extent, yet the rasters are sampled per photon.
The RasterSampler and corresponding Python client code need to sample the raster and create a result similar to the way the alt03 photon level ancillary fields are done - so that there is one record per extent and inside that record there are exactly the number of samples to match the number of photons.
The RasterSampler currently doesn't work with ATL03 because it uses the extent_id to merge the result, but the ATL03 segments only have one extent_id per extent, yet the rasters are sampled per photon.
The RasterSampler and corresponding Python client code need to sample the raster and create a result similar to the way the alt03 photon level ancillary fields are done - so that there is one record per extent and inside that record there are exactly the number of samples to match the number of photons.