Minor point: Maybe this could be refactored so that we don't split only to rejoin again -- that is, store the split parts in a new variable so you can still get at the original value.

Also, if you use maxsplit to only perform one split, you can avoid rejoining, i.e.:

```
coord = re.split('(\+|\-)', ' '.join(coord), 1)
```