Rej can be used to achieve registration between two images, probably GeoTIFFs, but any format rasterio can read should work fine.
Registration is achieved by selecting reference ("ground control") points on both
images. A .PTS
file is output containing pixel coordinates of corresponding points.
Eventually, a new GeoTIFF can be output, we're working on it 🤙🏽.
You'll need both the JupyterLab widget, as well as the python library:
jupyter labextension install @ceresimaging/rej
pip install rej
import rej
rej.register('./file1.tiff', './file2.tiff')
This should bring up the interactive UI shown above inside your jupyter notebook. Clicking "Save" will output a PTS file, which may be applied to the images to transform them. Enjoy!
Most of Rej is written in Javascript/VueJS, which is then accessed through a thin python library. Development will mostly take place inside the context of JupyterLab, so its nice to set things up so every time you save a file, the JupyterLab extension is updated:
pip install -r requirements.txt && pip install -e . && jupyter nbextension enable --py widgetsnbextension && jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager && npm install
- In one terminal:
npm run watch
- In another terminal:
npm run jupyterlab
If you're working on a feature/bug that doesn't require jupyterlab, you may prefer to develop inside Vue CLI's hot-reloading app mode. To do this:
npm run serve
- Increment "version" in
package.json
npm run install
npm run build
npm publish:all