== PyOSSIM : Google Summer of Code, 2011 Project Page == '''Student Name''' [[BR]] Vipul Raheja '''Aim of the project''' [[BR]] 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 [http://web.me.com/epiesasha/PlanetSasha/Project.html PlanetSasha] functionalities inside the respective GRASS and QGIS plug-in. '''Project Proposal is listed at:''' [[BR]] [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/acemcloud/4001 GSoC Proposal] '''Old Page can be seen at:''' [[BR]] [http://web.me.com/epiesasha/PlanetSasha/2010Project.html PlanetSasha] '''Project repository present at:''' [[BR]] [https://github.com/vipulraheja/PYOSSIM Github Code Repository] [[BR]] === 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''' [[BR]] 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. [[BR]] 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. [[BR]] === Week 2 Report === '''Work Done''' * Read quite a chunk of the [http://swig.org/Doc2.0/SWIGDocumentation.html 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''' [[BR]] None as yet '''Work to be done in Week 3''' * Continue reading and start dive into the OSSIM SWIG interface. [[BR]] === Week 3 Report === '''Work Done''' * Completed the reading aspect of development of SWIG skills. Including the [http://swig.org/Doc2.0/SWIGDocumentation.html#Python Python and SWIG] aspect. * Coded a Python-SWIG Interface for {{{ossimjni}}}. Compilation and testing still in progress. '''Problems Faced''' [[BR]] * 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''' [[BR]] * Learning more about which API are exposed in the SWIG-Java wrapper and start the Python porting. [[BR]] === 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''' [[BR]] * 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 5''' [[BR]] * 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. [[BR]] === Week 5 Report === '''Work Done''' * Read the Python-Distutils documentation and learnt about the Python package distribution mechanism. * Updated the [https://github.com/vipulraheja/ossim-svn GitHub project page] with the code (chiefly the local environment). The Python-version of ossimjni extension can be found [https://github.com/vipulraheja/ossim-svn/tree/master/src/ossimjni/python here]. '''Problems Faced''' [[BR]] * I did start coding the core PyOSSIM code based on the pre-existing Java-OSSIM Wrapper Interface {{{oms}}}, but after some discussions with the community, the work was stopped till my mentor Massimo was back (26 June) to give guidance and resolve. In the meantime, I devoted my time to studying about Python-Distutils and completed it. * Could not get svn access since Massimo is travelling. Should be available soon. '''Work to be done in Week 6''' [[BR]] * Get access to svn repository so as to commit and update code directly to the repository here. * Study about NumPy and PIL (Python Imaging Library) to learn the "Array passing functionality" with OSSIM and Python. * Resume coding the SWIG-Python Interface for OSSIM.