wiki:GsocPyOssim

Version 12 (modified by vipulraheja, 13 years ago) ( diff )

--

PyOSSIM : Google Summer of Code, 2011 Project Page

Student Name
Vipul Raheja

Aim of the project
The aim is to expose the OSSIM and OSSIMPlanet API to Python in order to extend their functionalities to other essential GIS and remote sensing analysis tools like GRASS, QuantumGIS and libraries like GDAL etc. The software package consists of:

  • Software libraries,
  • Command line tools, and
  • GUI applications

OSSIM already has some API exposed using the SWIG interface as wrapper. Hence, The Python bindings for the core library will be used to write a toolbox based on the OSSIM function as an extension to GRASS and QGIS for image analysis while the python bindings for the OSSIMPlanet API will be used to extend the PlanetSasha functionalities inside the respective GRASS and QGIS plug-in.

Project Proposal is listed at:
GSoC Proposal

Old Page can be seen at:
PlanetSasha

Project repository present at:
Github Code Repository


Week 1 Report

Work Done

  • Delved into the requirements for PyOSSIM by understanding the source code structure better
  • Set up the following:
    • Wiki Page
    • Code Repository
    • Local development environment by downloading and building the OSSIM Source

Problems Faced
Mostly I had issues with the building part only. There were problems when I disabled video to keep the ossimPredator disabled and out of the build - this was done initially to handle problems posed by ffmpeg while building, so it was decided to keep it out of the build and make a cleaner build. But that had many other dependencies to be taken care of including the various CMakeLists.txt files to handle the same. Due to incomplete handling, the build was giving problems and not compiling completely.
But later, the build compiled smoothly on a fresh machine running Ubuntu Maverick (earlier it was Lucid).

Work to be done in Week 2

  • Read and understand about Python/C++ API
  • Start to read and learn about SWIG wrapping techniques and so as to understand the general python wrapping better and the problems exposed by it in context of OSSIM
  • Get an idea about oms.i - the SWIG-Java wrapping interface for OSSIM, and start understanding it to 'Pythonize' it in the future.


Week 2 Report

Work Done

  • Read quite a chunk of the SWIG 2.0 Documentation so as to understand the lower-level details of language wrapping techniques, specifically in context of Python and C/C++.
  • Read about Python embedding and extension, so as to understand how Python facilitates the addition of a new set of commands for extending it's interpreter with new modules.

Problems Faced
None as yet

Work to be done in Week 3

  • Continue reading and start dive into the OSSIM SWIG interface.


Week 3 Report

Work Done

  • Completed the reading aspect of development of SWIG skills. Including the Python and SWIG aspect.
  • Coded a Python-SWIG Interface for ossimjni. Compilation and testing still in progress.

Problems Faced

  • Some issues regarding the compilation of osssimjni-Python interface are yet to be solved. Working on the same.
  • The code could not be committed on the repository due to an upgrade in my college firewall. I have requested for permission for external access from the concerned authorities.

Work to be done in Week 4

  • Learning more about which API are exposed in the SWIG-Java wrapper and start the Python porting.


Week 4 Report

Work Done

  • Solved most of the compilation problems that were occurring last week in the building of ossimjni Python interface.
  • Found a workaround to proxy-tunnel through my college firewall. Will commit the code today (June 18, 2011) itself on github page.

Problems Faced

  • Only one outstanding issue remains - that of libossimjni not being created in the build which is leading to all the problems. Working on that with Massimo and David Burken.

Work to be done in Week 4

  • Study about Python distutils for future integration.
  • Get access to svn repository so as to commit and update code directly to the repository here.
  • Start working on the oms.i - the main Java-Swig interface of OSSIM, and begin working on Pythonizing it.
Note: See TracWiki for help on using the wiki.