ezmsg.nwb.electrodes.COLUMN_SOURCES#

COLUMN_SOURCES: dict[str, tuple[str, ...]] = {'bank': ('bank',), 'elec': ('term', 'elec'), 'headstage': ('headstage',), 'label': ('label',), 'size': ('size',), 'x': ('rel_x',), 'y': ('rel_y',)}#

Which electrodes-table columns feed each field, in order of preference.

rel_x/rel_y only, never NWB’s x/y. They are different quantities: rel_* is the position within the electrode group, which is what a channel map describes and what the live source puts in these fields, while x/y/z are the location in the brain, nominally in metres. Accepting the latter as a fallback would fill a micrometre field with millimetre-scale brain coordinates – and, because almost every NWB file with electrodes carries x/y, it would also make has_channel_metadata() answer True for files that have no channel map at all.