GSOC 2014 proposal, OTB, OSGeo
1. Biography Name: Martina Porfiri Country: Italy School & degree: University of Rome “Sapienza”; PhD Student Email: firstname.lastname@example.org
2. OSGeo project: OTB - Modern multi image visualization GUI for Satellite Image Time Series in Monteverdi2 3. Title: OTB ICE extension for Monteverdi2: implementation of dynamic functionalities for satellite image time series analysis
4. Describe your idea 4.1 Introduction The Earth is a dynamic system and its surface is continuously changing at different time scales. Accordingly, Satellite Image Time Series (SITS) are an essential resource to analyze and monitor the Earth surface dynamics. In the coming years, both high temporal and high spatial resolution SITS are going to be widely and freely available thanks to the European Space Agency’s (ESA) Sentinel program. In order to efficiently use the huge amounts of data that will be produced by, for instance, Sentinel-2 (global cover every five days with 10 m to 60 m resolution and 13 spectral bands), the goal of this project is to add new OTB Monteverdi2 functionalities for SITS visualization, based on ICE and OpenGL APIs. Hereafter is reported a draft proposal (tasks and related time schedule) that will be tuned on the way, in accordance with the mentoring organization.
4.2 Background Recently, ORFEO ToolBox has expanded its open source library with a new and fast OpenGL rendering API, called ICE, for remote sensing images. Currently, basic and very useful functionalities (e.g. zooming and panning, different portals and shaders, multiple images managing whatever the sensor or the geometry) have been implemented. Due to the incoming ESA Sentinel satellite missions, huge time series data will be widely available and new image visualization GUIs need to be added in order to manage efficiently all derived layers in Monteverdi2. Good functionalities could be ‘cover flow’, that allows to view all loaded images in a dynamic and efficient way, and ‘criteria ordering’, that allows to classify the data depending on different characteristics (e.g. time, spectral band, sensor). Processing image time series means processing huge amounts of data acquired not only in different time, but also with different geometric configuration and spatial resolution in several spectral bands (up to 13 spectral bands for Sentinel-2). Therefore, it could be useful to develop and implement several visualization tools that enable to manage the data depending on both time and spectral band.
4.3 The idea The idea is to develop new functionalities for OTB ICE extension for satellite image time series visualization in Monteverdi2. The project will be based on OpenGL API and it will be implemented in C++ language. I am interested to investigate the following main aspect:
• implementation of new and specific functionalities, as cover flow mode and criteria ordering definition, able to easily browse and search dozens of images derived from satellite time series
In particular, my idea is to supply to the users the following procedures:
• possibility to view, browse and search all loaded data using the cover flow user interface, available in OpenGL in different kind of viewing. The idea is to create a panel type ‘Multi Image GUI’ similar to the actual Monteverdi2 one, where the users will be able to visualize and select the data in two different cover flow mode, i.e. default (classical cover flow stack representation) or flat (horizontal stack visualisation). Flipping through snapshots of images, the main metadata information (eventually selectable by the users) and the main characteristics of the selected image will be showed, respectively, in the actual docking windows ‘Dataset properties’, ‘Quicklook view’, ‘Histogram’ and ‘Pixel Description’. Moreover, the data list will be reported in the ‘Name’ window, from which will be possible to select the image of interest. Like this, one could switch the data, visualize the relative selected information and select the images to process in a dynamic and efficient way.
• possibility to order the data depending on different characteristics specially designed for multispectral satellite sensors (e.g. Sentinel-2, WorldView-1 and -2, RapidEye, Pleiades) as time, spectral band or geometric configuration. This function enables to manage the data depending on the aim of the future processing (e.g. change detection, feature extraction, hyperspectral analysis).
• possibility to select a stack of images filtering loaded data on specific metadata information of interest, as acquisition date, incidence angle, spectral band, estimated ground spacing. Different ‘Multi Image GUI’ panels will be created: one for all data (e.g. named ‘All Datasets’), one for selected data (e.g. named ‘Selected Datasets’). In summary, in Monteverdi2 the following steps could be performed:
• loading all available data, acquired in different time and in different geometric configuration, in ‘All Datasets’ panel • filtering loaded data depending on the specific processing application and their visualisation on ‘Selected Datasets’ panel • visualizing all and filtered data in coverflow mode (default or flat) and ordering the images depending on specific characteristics
In my opinion, in this way one could manage efficiently the huge number of layers derived from image time series analysis.
Sample data: The links below report different kind of free sample dataset that can be used for test the algorithm:
4.4 Project plan Documentation and Code report: ● Documenting work advances every week on wiki page (this include code documentation) ● Updating regularly the mercurial repository
Timeline: April 21 - May 18 (Before the official coding time): ● Familiarizing with OTB ICE library development ● Refining project plan according to mentor(s) suggestions ● Preparing wiki page and mercurial repository for code regular hosting May 19 (Official coding period starts) - June 01: ● OpenGL coverflow API analysis ● Starting coverflow implementation ● Test and control implementation efficacy - discuss results with mentor(s) June 02 - June 15: ● Continuing to implement coverflow modules ● Test and control implementation efficacy - discuss results with mentor(s) June 16 – June 22: ● Looking how integrate developed functionalities in a ‘Multi Image GUI’ ● Buffering period June 23 (Mid-Term) – June 29: ● Bugs fixing - report adjusting in accordance with mentor(s) suggestions - finalize mid-term report June 30 - July 13: ● Implementation of data ordering functions ● Test and control implementation efficacy - discuss results with mentor(s) July 14 - July 27: ● Integrating developed functionalities to ‘Multi Image GUI’ ● Starting implementation of data filtering selection ● Test and control implementation efficacy - discuss results with mentor(s) July 28 – August 10 ● Continuing the implementation of data filtering selection ● Test and control implementation efficacy - discuss results with mentor(s) August 11- August 18 (pencils down): ● Buffering period ● Testing and debugging code - exchange opinions with mentor(s) ● Refine documentation and tutorials After August 18 ● Working on further bugs, dependencies (if any arise) ● Remaining an active member of the OTB community
DELIVERABLES ● Source Code of the extension ● Documentation
4.5. Future ideas This project is focused on the implementation of new GUIs for a modern visualisation of imagery acquired by optical sensors. Taking into account the ESA Sentinel-1 mission, the extension of these functionalities to data acquired by SAR satellites could be useful and interesting, in particular to manage large interferometric stacks.
5. How my SoC task would benefit the OSGeo member project and more generally the OSGeo Foundation as a whole: My proposal will complement OTB ICE library with some new multi image visualisation GUIs: this could be the basis for the development of more future visualisation tools.
6. Details of general computing experience: Operating Systems – Windows, Linux Languages - IDL, Bash, C, C++ Other tools - MATLAB, git, hg
7. Previous GIS experience: I usually use for my research several platforms to manage spatial data (e.g. GlobalMapper, ArcGis, QGis).
8. Details of previous involvement with GIS programming and other software programming: I have been studying SAR image processing and spatial data ever since my M.Sc. Thesis. In fact, I developed a dynamic speckle filtering procedure in order to maximize not only the number of points detected by image matching, but also their statistical goodness. Thanks to these projects I became proficient in IDL programming language. This algorithm has been embedded in SISAR software, which is a scientific software for image orientation and Rational Polynomial Coefficient (RPC) generation developed at Geodesy and Geomatics Area, Sapienza University of Rome “La Sapienza”. SISAR software is implemented using C++. Moreover, I implemented a specific ENVI tool for Digital Surface Models (DSMs) accuracy assessment in IDL language. During this PhD year I improved my C and C++ programming language experience attending to two courses (‘Introduction to C Programming Language for Scientific Applications’ and ‘Introduction to Scientific and Technical Computing in C++’) held at CINECA (Interuniversity Computing Center), Rome.
9. Why am I interested in GIS and open source software: I am positive regarding open source software philosophy and ethic, enabling unlimited tuning and improvement of the products, which thus can be shared by a large community. This could be my first coding involvement with open source community and it is important, in my experience, to make possible to adapt the code to changing user conditions and to reach a detailed comprehension of how it works. This feeling applies to this specific project proposal as well.
10. Why am I interested in working for OSGeo and OTB: OSGeo is a non-profit organization that allows working with several open-source geospatial communities as ORFEO ToolBox, an open source library for remote sensing image processing. Their doings are perfectly in line with my main PhD activities (satellite image processing) and with my interest to improve my open source software coding experience.
11. Why am I interested in this specific coding project: For my PhD research I work every day with satellite data, using several commercial and scientific software. As both user and developer, I know very well the importance to have useful GUIs that enable an efficient data managing and processing. In particular, I would like to contribute to upgrade OTB ICE library with multi image managing functionalities that I will be able to use for my research activities. ‘OTB - Modern multi image visualization GUI for Satellite Image Time Series in Monteverdi2’ OSGeo project duly fulfills this goal, taking into account the strong impact of data availability derived from incoming ESA Sentinel missions.
12. Contribute of my application to my ongoing studies I am a PhD student and my research project is focused on image processing and DSMs extraction using different techniques, as radargrammetry and polarimetric SAR tomography. This requires the managing and the processing of a large number of data; enhancing my experience in the development and implementation of image visualisation GUIs I will contribute in improving my research.
13. How I intend to continue being an active member of OTB and/or OSGeo AFTER the summer is over: As a matter of fact, OTB is an outstanding open source library for remote sensing analysis and applications offering a user-friendly interface and a lot of implemented functions. I will continue using and testing the software and, with the support and the approval of OTB development team, I will contribute in proposing and implementing new features to enrich the software and further boost its permeation among the scientific (and hopefully general purpose) users.
14. Do I understand this is a serious commitment, equivalent to a full-time paid summer internship or summer job Yes, I know that if this opportunity will become true I completely devote my self to accomplish this mission.
15. Time conflicts during the official coding period: Any