Skip to content
forked from snickell/rej

Interactive image registration for JupterLab

License

Notifications You must be signed in to change notification settings

ceresimaging/rej

 
 

Repository files navigation

Interactive Image Registration for JupyterLab

Rej can be used to achieve registration between two images, probably GeoTIFFs, but any format rasterio can read should work fine.

Rej in action for georeferencing

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 🤙🏽.

Installing Rej

You'll need both the JupyterLab widget, as well as the python library:

jupyter labextension install @ceresimaging/rej
pip install rej

Using 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!

Effective Rej Development

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:

  1. pip install -r requirements.txt && pip install -e . && jupyter nbextension enable --py widgetsnbextension && jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager && npm install
  2. In one terminal: npm run watch
  3. In another terminal: npm run jupyterlab

Run outside JupyterLab for faster dev iteration

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:

  1. npm run serve

Publish an updated version to pypi & npm (this will also update the ICIN build)

  1. Increment "version" in package.json
  2. npm run install
  3. npm run build
  4. npm publish:all

About

Interactive image registration for JupterLab

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 48.6%
  • Python 25.9%
  • JavaScript 23.6%
  • HTML 1.9%