Sorry, but I'm confused by this line and the message (which mentions weights and also doesn't appear to be used). I'd be tempted to simplify this function to something like:
```python
points = coord.points
if src_cube.coord_dims(coord) == (1, 0):
    points = points.T
if points.shape != src_cube.shape:
    msg = 'The shape of the points array of !r is not compatible with the shape of !r.'
    raise ValueError(msg.format(coord.name(), src_cube.name())
return np.asarray(points.flatten())
```
This avoids the slightly confusing double check of points.shape and avoids the row_major/column_order wording which I misinterpreted on first reading. If you really wanted to push the boat out you could through in a mesh_grid and support 1d sx and sy coords, but that can wait.